当我尝试dbms_metadata.get_ddl('TABLE', 'MYTABLE', 'MYSCHEMA')
在 pl/sql 块或包过程中调用时,它工作正常。
当我尝试dbms_metadata.get_ddl('TABLE', 'MYTABLE')
在 pl/sql 块或包过程中调用(没有明确提供模式)时,它也可以正常工作。
当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR')
在 pl/sql 块中调用(没有明确提供模式)时,它也可以正常工作。
但,
当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR', 'MYSCHEMA')
在 pl/sql 块或包过程中调用时,它会引发错误:
ORA-31600: invalid input value MYSCHEMA for parameter SCHEMA in function GET_DDL
当我尝试dbms_metadata.get_ddl('DIRECTORY', 'MYDIR')
在包过程中调用(没有明确提供架构)时,它会引发错误:
ORA-31603: object "MYDIR" of type DIRECTORY not found in schema "MYSCHEMA"
问题是什么?
EXECUTE_CATALOG_ROLE=true
SELECT_CATALOG_ROLE=true
'CREATE ANY DIRECTORY'=true
PL/SQL Release 12.2.0.1.0 - Production