如果相关,我正在使用 IBM i V7R1M0。
我在 C# 中有一些代码:
var generateSqlSql = $@"
CALL QSYS2.GENERATE_SQL(
'{obj.Name}',
'{obj.Library}',
'VIEW',
CREATE_OR_REPLACE_OPTION => '1',
HEADER_OPTION => '0',
COMMENT_OPTION => '1',
PRIVILEGES_OPTION => '0',
LABEL_OPTION => '0'
)";
...
//get results
//split on semicolon
//change library
//write back to database
然后它试图编写的 sql 是:
CREATE OR REPLACE VIEW AMMLIBC.BBI_USER_MY_VIEW FOR SYSTEM NAME BBIU_00001 (
/* view columns */ )
AS
/*view definition */
RCDFMT BBIU_00001
当我尝试运行它时,它会出现以下错误:
iDB2SQLErrorException: SQL7029 New name BBIU_00001 is not valid.
...为什么?是什么原因造成的,我该如何让它发挥作用?
发现了问题。
该视图已存在于原始库和目标库中,但系统名称不同。
添加此行解决了问题: