出现了达梦数据库迁移报错 -2106,错误提示是无效的表或视图名。
这个错误通常发生在迁移过程中指定了一个不存在的表或视图名。可能是在迁移语句中错误拼写了表名或视图名,或者在源数据库中确实不存在这个表或视图。
解决这个问题的方法是检查迁移语句中的表名或视图名是否正确,并确保在源数据库中存在这个表或视图。如果是因为错误拼写导致的错误,可以修正拼写错误。
但是,笔者初次接触达梦数据库,在将Oracle数据库中表和视图迁移到达梦数据库均成功,在视图转表时出现“-2106 第1 行附近出现错误无效的表或视图”错误。多次查找原因,发现
1.达梦数据库与ORACLE数据库的模式和用户的关系不一样,达梦数据库一般一个用户对应一个同名的模式,在默认SYSDBA模式下创建视图转表使用下面代码:
CREATE TABLE new_table AS SELECT*FROM view_name;
此时无法创建创建视图转表,报错“-2106 第1 行附近出现错误无效的表或视图名”。
2.问题出现在Oracle迁移到达梦数据库时,达梦默认Oracle的库名为达梦的模式名,自动授权给了SYSDBA(因为用SYSDBA账户登录),在用 CREATE TABLE new_table AS SELECT * FROM xxx.view_name;语句时也默认模式为SYSDBA,然而视图是在迁移名称的模式下,所以出现
无效的表或视图名。
3.解决的办法:在视图名加上模式名。
CREATE TABLE new_table AS SELECT * FROM xxx.view_name; --xxx为视图所属模式名
不知是否理解正确,本人只是这个方法解决问题的。