ORACLE 动态SQL 转义字符 单引号

    xiaoxiao2021-03-25  107

    脚本内容:业务部门需要定期从某库取出质保数据:

     cat zhibaodata.sh  #!/bin/sh export DISPLAY=:0 if [ -f ~/.bash_profile ]; then   . ~/.bash_profile fi sh /home/oracle/.bash_profile Sql_Directory=/u01/temp/scripts/zhibaotable sqlplus  -s system/uiu  @${Sql_Directory}/zhibaocreatetable.sh

    cat zhibaocreatetable.sh  set serveroutput on declare   v_date varchar2(8);  v_table1   varchar2(32);  v_table2   varchar2(32);  v_table3   varchar2(40);  v_table4   varchar2(32);  v_table5   varchar2(32);  v_table6   varchar2(32);  v_table7   varchar2(32);  v_table8   varchar2(32);  v_table9   varchar2(32);  v_table10  varchar2(32);  v_table11  varchar2(32);  v_table12  varchar2(32);  v_sqlt varchar2(2000);  v_sql1 varchar2(2000);  v_sql2 varchar2(2000);  v_sql3 varchar2(2000);  v_sql4 varchar2(2000);  v_sql5 varchar2(2000);  v_sql6 varchar2(2000);  v_sql7 varchar2(2000);  v_sql8 varchar2(2000);  v_sql9 varchar2(2000);  v_sql10 varchar2(2000);  v_sql11 varchar2(2000);  v_sql12 varchar2(2000);  v_sqlw varchar2(2000);  v_username varchar2(20);  v_userpasswd  varchar2(20); begin  select to_char(sysdate-10,'yyyymmdd') into v_date from dual;   v_username := 'lsp'||v_date;  v_userpasswd := 'sp'||v_date||'*';  v_table1   := 'user.SCCOUNT'||v_date;  v_table2   := 'user.SOUNT' ||v_date;  v_table3   := 'user.RESTLIT'||v_date;  v_table4   := 'useJNEE'||v_date;  v_table5   := 'user._FEE'||v_date;  v_table6   := 'user.N_SPLIT'||v_date;  v_table7   := 'useITAL_PC'||v_date;  v_table8   := 'user._CAPITAL_SD_PC'||v_date;  v_table9   := 'user.STEREST'||v_date;  v_table10  := 'user.SJM_NTEREST'||v_date;  v_table11  := 'user.SJM_FEE'||v_date;  v_table12  := 'user.STAL_DFCH'||v_date;  v_sqlt  := 'create database link neworclau connect to '|| v_username  ||' identified by '|| v_userpasswd || ' using  '''||'audit'||'''  ';        v_sql1  := 'create table   '||v_table1||' as select * from CCOUNT@neworclau ' ;  v_sql2  := 'create table   '||v_table2||' as select * from SMOUNT@neworclau ' ;  v_sql3  := 'create table   '||v_table3||' as select * from SJTEREST_SPLIT@neworclau ' ;  v_sql4  := 'create table   '||v_table4||' as select * from SJEE@neworclau ' ;  v_sql5  := 'create table   '||v_table5||' as select * from SJMFEE@neworclau ' ;  v_sql6  := 'create table   '||v_table6||' as select * from SJN_SPLIT@neworclau ' ;  v_sql7  := 'create table   '||v_table7||' as select * from SAPITAL_PC@neworclau ' ;  v_sql8  := 'create table   '||v_table8||' as select * from SJL_SD_PC@neworclau ' ;  v_sql9  := 'create table   '||v_table9||' as select * from SJTEREST@neworclau ' ;  v_sql10 := 'create table   '||v_table10||' as select * from SFCH_INTEREST@neworclau ' ;  v_sql11 := 'create table   '||v_table11||' as select * from SJM__FEE@neworclau ' ;  v_sql12 := 'create table   '||v_table12||' as select * from SJPITAL_DFCH@neworclau ' ;  v_sqlw  := 'drop  database link  neworclau ' ;  dbms_output.put_line(v_sqlt);  execute immediate v_sqlt;  dbms_output.put_line(v_sql1);  execute immediate v_sql1;  dbms_output.put_line(v_sql2);  execute immediate v_sql2;  dbms_output.put_line(v_sql3);  execute immediate v_sql3;  dbms_output.put_line(v_sql4);  execute immediate v_sql4;  dbms_output.put_line(v_sql5);  execute immediate v_sql5;  dbms_output.put_line(v_sql6);  execute immediate v_sql6;  dbms_output.put_line(v_sql7);  execute immediate v_sql7;  dbms_output.put_line(v_sql8);  execute immediate v_sql8;  dbms_output.put_line(v_sql9);  execute immediate v_sql9;  dbms_output.put_line(v_sql10);  execute immediate v_sql10;  dbms_output.put_line(v_sql11);  execute immediate v_sql11;  dbms_output.put_line(v_sql12);  execute immediate v_sql12;  dbms_output.put_line(v_sqlw);  execute immediate v_sqlw; end; / exit;

    转载请注明原文地址: https://ju.6miu.com/read-18838.html

    最新回复(0)