欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          oracle存儲過程中賦值給變量的方法有哪些

          賦值給變量的方法:1、使用“:=”直接賦值,語法“變量名:=值;”;2、使用“select 表字段 into 變量 from 表”語句;3、使用“execute immediate sql語句字符串 into 變量”語句。

          oracle存儲過程中賦值給變量的方法有哪些

          本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。

          Oracle存儲過程 變量聲明和賦值的方法

          1.聲明變量的3種方式

          按照數(shù)據(jù)類型的聲明方式進行區(qū)分

          方式一:直接聲明數(shù)據(jù)類型

          格式:變量名 數(shù)據(jù)類型(大小)

          V_START_DATE VARCHAR2(19); v_num number;

            說明:

            設置為字符串類型時,需要指定大小,否則報錯;

            變量的聲明必須在"begin"關鍵字之前進行。

          --錯誤用法 BEGIN v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';

          方式二:使用%TYPE聲明

          格式:變量名 表名.字段名%TYPE

          含義:該變量的數(shù)據(jù)類型與指定表的指定字段的數(shù)據(jù)類型一致

          V_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;

            方式三:使用%ROWTYPE聲明

            格式:變量名 表名%ROWTYPE

            含義:該變量的數(shù)據(jù)類型與指定表的指定行記錄(所有字段)的數(shù)據(jù)類型一致

          --VIRTUAL_CARD表整行數(shù)據(jù) V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE; 

            小結:

            在存儲過程中,聲明變量時,不需要使用關鍵字"DECLARE"; 

            變量不區(qū)分大小寫;

            變量在使用前必須聲明。

          2.變量賦值的3種方式

          方式一:直接賦值,使用":="

            使用條件:適用于聲明變量的前2種方式。

          V_ORGID :=  '110';  

            說明:

            變量后面跟不能直接是sql語句,sql不會執(zhí)行,可以參考方式三。

          --錯誤用法 V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO; --正確用法 V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';

            變量的聲明和賦值可以一塊進行。

          --正確用法 v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; BEGIN  /* 具體業(yè)務 */ END;

          方式二:select 表字段 into 變量 from 表

          變形一:查詢指定表的一個指定字段

            使用條件:適用于聲明變量的前2種方式可以使用

          --根據(jù)醫(yī)療機構ID查詢對應的父機構的機構序列 SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO  WHERE ORGID =        (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);

          變形二:查詢指定表的所有字段

            使用條件:只適用于聲明變量的第3種方式

          --將id=5120的VIRTUAL_CARD表數(shù)據(jù)賦值給變量V_ROW_VIRTUAL_CARD SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;

            說明:

            查詢結果只能返回一條記錄;

            查詢的表字段必須是該表的所有字段。

            錯誤舉例:

          --錯誤舉例一:查詢的是所有表記錄 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T; --錯誤舉例二:查詢的是該表的多個字段 SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;  

          方式三:execute immediate sql語句字符串 into 變量

          declare/* 存儲過程,不需要聲明 */   v_sql varchar2(100);   V_ORGSEQ varchar2(100); begin   v_sql := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';   --V_ORGSEQ賦值   execute immediate v_sql INTO V_ORGSEQ;   --打印結果   DBMS_OUTPUT.put_line(V_ORGSEQ); END;

          3.變量的調用

            一般來說,變量只有這3種使用場景:賦值、邏輯判斷、算術運算;

            說明:不能用作查詢列

          --錯誤調用 select V_ORGSEQ from dual;

            使用%ROWTYPE聲明的變量如何調用?

            利用"變量名.表字段"的方式可以取到該表中指定行(返回行)的指定列(任意列)所代表的數(shù)據(jù)。

          --V_ROW_VIRTUAL_CARD賦值 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120; --調用 DBMS_OUTPUT.put_line(V_ROW_VIRTUAL_CARD.ID);  

          推薦教程:《Oracle教程》

          贊(1)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號