PL/SQL - 在将元数据假脱机到文件后更新 table
PL/SQL - Update a table after spooling the metadata into a file
我有以下脚本,它存储 MTTO_TAB_EXIST_ALL
列中 table 的元数据。文件单独存储,其文件名与当前假脱机相同table
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
我需要的是在 table 假脱机后,它在列 MRK_BACKUP_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
的说法,所以我想知道有没有什么办法可以做到。
感谢任何帮助。
当您动态创建所有内容时,请在两者之间添加 update
,此处:
'FROM DUAL;'||chr(13)||chr(10)||
--> here
'spool off' as cmd
"Here" 看起来像这样;也许我用单引号和其他东西失败了(我没有你的表格,你写的代码有点难以跳入)所以 - 如有必要,修复它。
'update MTTO_TAB_EXIST_ALL set mrk_backup_ddl = ''N'' where table_name = ' ||
chr(39) || MTO_TABL || chr(39) || ';'
我有以下脚本,它存储 MTTO_TAB_EXIST_ALL
列中 table 的元数据。文件单独存储,其文件名与当前假脱机相同table
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
我需要的是在 table 假脱机后,它在列 MRK_BACKUP_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
的说法,所以我想知道有没有什么办法可以做到。
感谢任何帮助。
当您动态创建所有内容时,请在两者之间添加 update
,此处:
'FROM DUAL;'||chr(13)||chr(10)||
--> here
'spool off' as cmd
"Here" 看起来像这样;也许我用单引号和其他东西失败了(我没有你的表格,你写的代码有点难以跳入)所以 - 如有必要,修复它。
'update MTTO_TAB_EXIST_ALL set mrk_backup_ddl = ''N'' where table_name = ' ||
chr(39) || MTO_TABL || chr(39) || ';'