• oracle 存储过程使用动态sql


    Oracle存储过程使用动态SQL 有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者。

    DDL和DML (注意DDL中可以用拼接字符串的方法用来create table或drop table,在DML中,类似于insert则不可以直接用execute immediate中直接拼接的方法,必须用using传递参数)

    /*** DDL ***/  
    create or replace procedure CREATE_TABLE(CREATE_SQL VARCHAR2) is
    begin
      EXECUTE IMMEDIATE CREATE_SQL; -- 'create table temp_table(table_name varchar2(50))'
    end CREATE_TABLE;
    
    
    /*** DML ***/  
    declare   
       v_1 varchar2(8);   
       v_2 varchar2(10);   
       str varchar2(50);   
    begin   
       v_1:='测试';   --这里的v_1,v_2可以是直接存储过程中传过来的参数
       v_2:='北京';   
       str := 'INSERT INTO test (name ,address) VALUES (:1, :2)';   
       EXECUTE IMMEDIATE str USING v_1, v_2;   
       commit;   
    end; 

    转自:https://www.cnblogs.com/zmlctt/p/3750198.html

  • 相关阅读:
    2、MapStruct 深入理解
    1、MapStruct的应用
    Spring中的注解
    java中的三个内置注解
    依赖注入集合属性
    List Set Map的特点
    为类类型的属性依赖注入值
    java常用专业术语
    Bean的作用域范围
    Bean的生命周期
  • 原文地址:https://www.cnblogs.com/BobXie85/p/9829910.html
Copyright © 2020-2023  润新知