下面是一个冗长的脚本的代码片段。下面的代码用于从RESULT 1的输出中提取DDL。但是,它无法生成输出,并给出以下错误。如果你能解释一下下面的问题,我将不胜感激。
验证码:-
`RESULT1=`sqlplus -s 'system/'$DBSYS'@PROD' 2>/dev/null <<EOF
set feedback off
set heading off
select view_name from dba_views where view_name like '%DB2%';
EOF`
VIEWS_DDL=`sqlplus -s 'system/'$DBSYS'@PROD' 2>/dev/null <<EOF|tail -1
set feedback off heading off long 99999 linesize 1234 pages 1234
spool $LOCSC/DB2_VIEWS_$RQNUM.sql
select dbms_metadata.get_ddl('VIEW','$RESULT1','DATA_OWNER') from dual;
spool off
EOF``
当脚本运行时,理想情况下它应该在通过spool文件调用的位置为视图生成DDL,但是在spool文件中给出了以下错误。
输出:-
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
SP2-0734: unknown command beginning "DB2_OPORTR..." - rest of line ignored.
SP2-0734: unknown command beginning "DB2_DGORDP..." - rest of line ignored.
SP2-0734: unknown command beginning "DB2_DGORDP..." - rest of line ignored.
SP2-0734: unknown command beginning "DB2_SOPOGI..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
1条答案
按热度按时间yh2wf1be1#
您对SQL*Plus的第一次调用返回多个值,您将尝试在第二次调用中使用这些值,而第二次调用只需要一个值。
你不需要两个查询,你可以将它们组合为:
尽管您可能希望将查询限制为在函数调用中指定的同一用户,如:
或者只使用一个引用,在函数调用中也使用表列值:
您可能需要查看
set_transform_param
来修改DDL的显示方式。