zoukankan      html  css  js  c++  java
  • PLSQL 拼接SQL

    create or replace procedure prc2 is 
    v_name char(10);
    begin
     for i  in ( select username from t1)
    loop
      DBMS_OUTPUT.PUT_LINE('i的值是'||i.username); 
     end loop;
     end;
    
    
    SQL> exec prc2;
    i的值是SYS
    i的值是TEST
    i的值是HR
    i的值是SCOTT
    i的值是CZCB
    i的值是CHECK
    
    PL/SQL 过程已成功完成。
    
    
    
    
    SQL> create or replace procedure prc2 is 
    v_name char(10);
    v_sql varchar2(4000); 
    v_sql2 varchar2(4000); 
    begin
     for i  in ( select username from t1)
    loop
      DBMS_OUTPUT.PUT_LINE('i的值是'||i.username); 
      v_sql := 'insert into t3 select aa,bb,';
      v_sql2 :=v_sql||i.username||'from dual';
        DBMS_OUTPUT.PUT_LINE('sql的值是'||v_sql2); 
    /*  exec immediate v_sql2;*/
     end loop;
     end;  2    3    4    5    6    7    8    9   10   11   12   13   14  
     15  /
    
    过程已创建。
    
    SQL> show err;
    没有错误。
    SQL> exec prc2;
    i的值是SYS
    sql的值是insert into t3 select aa,bb,SYS       from dual
    i的值是TEST
    sql的值是insert into t3 select aa,bb,TEST      from dual
    i的值是HR
    sql的值是insert into t3 select aa,bb,HR        from dual
    i的值是SCOTT
    sql的值是insert into t3 select aa,bb,SCOTT     from dual
    i的值是CZCB
    sql的值是insert into t3 select aa,bb,CZCB      from dual
    i的值是CHECK
    sql的值是insert into t3 select aa,bb,CHECK     from dual
    
    PL/SQL 过程已成功完成。
    
    
    
    
    create or replace procedure prc2 is
    v_name char(10);
    v_sql varchar2(4000);
    v_sql2 varchar2(4000);
    begin
     for i  in ( select trim(username) as username from t1)
    loop
      DBMS_OUTPUT.PUT_LINE('i的值是'||i.username);
      v_sql := 'insert into t3 select  ''aa'', ''bb'',';
      v_sql :=v_sql||''''||i.username||''''||chr(9)||'from dual';
        DBMS_OUTPUT.PUT_LINE('sql的值是'||v_sql2);
       execute immediate v_sql;
     end loop;
     end;
    
    
    SQL> select * from t3;
    
    A1	   A2	      A3
    ---------- ---------- --------------------
    aa	   bb	      SYS
    aa	   bb	      TEST
    aa	   bb	      HR
    aa	   bb	      SCOTT
    aa	   bb	      CZCB
    aa	   bb	      CHECK
    
    已选择6行。

  • 相关阅读:
    调用其他类的方法
    CString中 format、trimLeft和trimright、trim 和FindOneOf用法
    GetAsyncKeyState()& 0x8000
    C++打开剪切板,获取剪切板数据
    CString比较不区分大小写
    C++ string中find() 用法
    CString数组和CStringArray
    nested exception is java.io.FileNotFoundException: Could not open ServletContext resource
    SQLPlus获取oracle表操作SQL
    XShell实现服务器端文件的上传下载
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351750.html
Copyright © 2011-2022 走看看