zoukankan      html  css  js  c++  java
  • Oracle中绑定变量的使用

    Oracle中绑定变量的使用

    1.SqlPlus中的用法

    SQL> var x number;      
    SQL> exec :x := 7369;
    
    PL/SQL procedure successfully completed.
    
    SQL> select * from scott.emp where empno=:x;
    
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
    

    image-20210923105139199

    2.PL SQL中的用法

    /* Formatted on 2021-09-24 上午 10:55:17 (QP5 v5.163.1008.3004) */
    --查询语句
    
    DECLARE
       V_ENAME   VARCHAR2 (10);
    BEGIN
       EXECUTE IMMEDIATE 'SELECT ENAME FROM SCOTT.EMP WHERE EMPNO = :1'
          INTO V_ENAME
          USING 7369;
    
       DBMS_OUTPUT.PUT_LINE (V_ENAME);
    END;
    
    --DML语句
    
    DECLARE
       V_SQL01     VARCHAR2 (4000);
       V_SQL02     VARCHAR2 (4000);
       V_COUNT01   NUMBER;
       V_COUNT02   NUMBER;
    BEGIN
       V_SQL01 := 'INSERT INTO MONKEY.TEST02 VALUES (:1,:2,:3)';
    
       EXECUTE IMMEDIATE V_SQL01 USING 3, SYSDATE, 'CC';
    
       V_COUNT01 := SQL%ROWCOUNT;
    
       V_SQL01 := 'INSERT INTO MONKEY.TEST02 VALUES (:1,:1,:1)';
    
       EXECUTE IMMEDIATE V_SQL01 USING 4, SYSDATE, 'DD';
    
       V_COUNT02 := SQL%ROWCOUNT;
       DBMS_OUTPUT.PUT_LINE (V_COUNT01 + V_COUNT02);
       COMMIT;
    END;
    
    --动态SQL(SQL文本不固定,由变量决定)
    
    DECLARE
       V_SQL     VARCHAR2 (4000);
       V_COL     VARCHAR2 (50);
       V_ENAME   VARCHAR2 (50);
    BEGIN
       V_COL := 'EMPNO';
       V_SQL :=
             'DELETE FROM SCOTT.EMP WHERE '
          || V_COL
          || '=:1 RETURNING ENAME INTO :2';
    
       EXECUTE IMMEDIATE V_SQL USING 7369 RETURNING INTO V_ENAME;
    
       DBMS_OUTPUT.PUT_LINE (V_ENAME);
    END;
    
  • 相关阅读:
    docker 基本概念
    6_State 游戏开发中使用状态机
    5_Singleton 游戏开发中的单例模式
    4_Prototype 原型
    3_observer
    2_flyweight, 轻量化模式
    1_Command 游戏开发命令模式
    CentOS7 Failed to start LSB: Bring up/down解决方法
    CentOS 7 中firewall-cmd命令
    CentOS查询端口占用和清除端口占用的程序
  • 原文地址:https://www.cnblogs.com/monkey6/p/15328973.html
Copyright © 2011-2022 走看看