Se relevante, estou usando o IBM i V7R1M0.
Eu tenho algum código em 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
O sql que está tentando escrever é:
CREATE OR REPLACE VIEW AMMLIBC.BBI_USER_MY_VIEW FOR SYSTEM NAME BBIU_00001 (
/* view columns */ )
AS
/*view definition */
RCDFMT BBIU_00001
Quando tento executar, dá o seguinte erro:
iDB2SQLErrorException: SQL7029 New name BBIU_00001 is not valid.
...Por que? O que está causando isso e como faço para que funcione?
Encontrou o problema.
A exibição já existia na biblioteca original e na biblioteca de destino, mas com nomes de sistema diferentes.
Adicionando esta linha corrigiu o problema: