Plsql PL/SQL—将元数据假脱机到文件后更新表

Plsql PL/SQL—将元数据假脱机到文件后更新表,plsql,sqlplus,plsqldeveloper,spool,command-window,Plsql,Sqlplus,Plsqldeveloper,Spool,Command Window,我有以下脚本,它存储了MTTO\u TAB\u EXIST\u ALL列中的表的元数据。这些文件单独存储,其文件名与当前后台处理表相同 set pagesize 0 set linesize 100 set long 90000 SET TERMOUT OFF spool out.sql select 'spool C:\Users\personal\MAIN_USR\table\'||REPLACE(table_name, '$', '_')||'.txt'||chr(13)||chr(1

我有以下脚本,它存储了
MTTO\u TAB\u EXIST\u ALL
列中的表的元数据。这些文件单独存储,其文件名与当前后台处理表相同

set pagesize 0
set linesize 100
set long 90000

SET TERMOUT OFF
spool out.sql

select 'spool C:\Users\personal\MAIN_USR\table\'||REPLACE(table_name, '$', '_')||'.txt'||chr(13)||chr(10)||
       'SELECT DBMS_METADATA.GET_DDL'||chr(13)||chr(10)||
       '(''TABLE'','''||table_name||''',''MTO_TABL'') '||chr(13)||chr(10)||
       'FROM DUAL;'||chr(13)||chr(10)||
       'spool off' as cmd
FROM MTTO_TAB_EXIST_ALL tea
WHERE tea.MRK_DEL_PERM = 'Y'
AND tea.OWNER_NM = 'MTO_TABL'
AND MRK_BACKUP_DDL != 'Y';

spool off

@OUT.SQL
我需要的是在假脱机该表之后,列
MRK\u BACKUP\u DDL
中该表的现有记录将更新为“Y”

TABLE_NAME                    | MRK_BACKUP_DDL
— — — — — — — — — — — — — — — — — — — — — — — — — —
CA_3092_MVTO_NODISTR_2_MISC   | Y
ED_EXTR_CSV_PRIMA_DEA_PUBLI   | N
CA_T3054_GRP_OFICINAS_O_MISC0 | N
我找不到任何类似于
UPDATE
语句的内容,因此我想知道是否有任何方法可以做到这一点


非常感谢您的帮助。

当您动态创建所有内容时,请在中间添加
更新,如下所示:

'FROM DUAL;'||chr(13)||chr(10)||
--> here
       'spool off' as cmd
“这里”看起来像这样;也许我在单引号之类的东西上失败了(我没有你写的表,你写的代码有点难跳进去),所以,如果必要的话,修复它

'update MTTO_TAB_EXIST_ALL set mrk_backup_ddl = ''N'' where table_name = ' || 
chr(39) || MTO_TABL || chr(39) || ';'