zoukankan      html  css  js  c++  java
  • PLSQL中 EXECUTE IMMEDIATE语句(带有语法)

    PLSQL中 EXECUTE IMMEDIATE语句
      
        先说说绑定变量
       ":"称绑定变量指示符,解释如下:
       它是用户放入查询中的占位符,它会告诉Oracle" 现在生成一个方案框架,实际执
       行语句的时候,会提供应该使用的实际值"。
       例子如下:
       select * from emp where dep='sale'; //不使用绑定变量
       select * from emp where dep=:sale //使用绑定变量
       一般在 procedure or function 中使用,可以优化共享池的使用。
        两句的区别很明显,后者多一个占位符,这个以冒号开始的变量可以灵活地执行不
       同条件的where语句,这是动态SQL语句。
      1、 语法:
      
        EXECUTE IMMEDIATE dynamic_string
        [INTO {define_variable[,define_variable]…| record}]
        [USING [IN | OUT | IN OUT] bind_argument[,[IN | OUT IN OUT] bind_argumnet]…]
        [{RETURNING | RETURN} INTO bind_argument[,bind_argument]…];
      2、 用法
        处理DDL操作(CREATE,ALTER,DROP)
        CREATE OR REPLACE PROCEDURE drop_table(table_name VARCHAR2)
        IS
         Sql_statemet VARCHAR2(100);
        BEGIN 
         Sql_statement:=’DROP TABLE’ || table_name;
         EXECUTE IMMEDIATE sql_statement;
        END;
        /
        建立过程drop_table后,调用如下:
        SQL> exec drop_table(‘worker’)
        处理DCL操作(GRANT REVOKE)
        SQL> conn system/manager
        CREATE OR REPLACE PROCEDURE grant_sys_priv(priv VARCHAR2,username VARCHAR2)
        IS
         Sql_stat VARCHAR2(100);
        BEGIN
         Sql_stat:=’GRANT “ || priv|| ’ TO ’|| username;
        EXECUTE IMMEDIATE sql_stat;
        END;
        /
        调用
        SQL> exec grant_sys_priv(‘CREATE SESSION’,’SCOTT’)
        处理DML操作(INSERT UPDATE DELETE)
        如果DML语句带有占位符,那么在E I语句中则要带USING子句
        如果DML语句带有RETURNING子句,那么E I语句中要带有RETURNINGINTO子句
        例子,处理单行查询:
        DECLARE
         sql_stat VARCHAR2(100);
         emp_record tbl%ROWTYPE;
        BEGIN
         sql-stat:='SELECT * FROM tbl WHERE tblno=:no';
         EXECUTE IMMEDIATE sql_stat INTO emp_record USING &1;
         dbms_output.put_line(emp_record.ename||emp_record.sal);
        END;
        /
  • 相关阅读:
    kali linux之wireshark/tcpdump
    kali linux之netcat
    kali 插耳机没声音
    php代码审计10审计会话认证漏洞
    php代码审计9审计反序列化漏洞
    php代码审计8审计文件上传漏洞
    Python opencv 形态学
    图像与轮廓检测-轮廓检测
    Python操作Excel,openpyxl模块,画折线图
    Pthon强制删除非空文件夹
  • 原文地址:https://www.cnblogs.com/JSD1207ZX/p/9386338.html
Copyright © 2011-2022 走看看