JUST DO IT ~

          我只想當個程序員

          plsql 環境 定義一個 環境變量 define var=x var 定義變量




          system@idmp-192.168.2.101> var cc number;
          system@idmp-192.168.2.101> begin :cc:=9901; end;
            2  /
          PL/SQL 過程已成功完成。
          已用時間:  00: 00: 00.06
          system@idmp-192.168.2.101> var
          變量   cc
          數據類型   NUMBER
          system@idmp-192.168.2.101> show cc
          SP2-0158: 未知的 SHOW 選項 "cc"
          system@idmp-192.168.2.101> print cc

                  CC
          ----------
                9901

          system@idmp-192.168.2.101>



          plsql 環境 定義一個 環境變量 define  var=x 

          或者在腳本中用 &var sqlplus 會提示 輸入變量值.

                   SQL> set define off;

                  是把默認的&綁定變量的功能取消, 可以把'&字符'當成普通字符處理
                  SQL> set define on;
                  打開&綁定變量的功能, &后面的字符串當變量使用.
                  SQL> show define;

          有點宏替代的味道


          SQL> select to_char('&at')  from dual ;
          輸入 at 的值:  iuo223
          原值    1: select to_char('&at')  from dual
          新值    1: select to_char('iuo223')  from dual

          TO_CHA
          ------
          iuo223

          SQL>




          SQL> select &y from dual ;
          輸入 y 的值:  1
          原值    1: select &y from dual
          新值    1: select 1 from dual

                   1
          ----------
                   1

          SQL>



          請輸入用戶名:  idmp/idmp

          連接到:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL> select * from dual where 1 = &item
            2  ;
          輸入 item 的值:  2
          原值    1: select * from dual where 1 = &item
          新值    1: select * from dual where 1 = 2

          未選定行


          Var 變量 類型

          define用于char類型的替換變量,執行時有提示
          variable可定義多種類型的變量,執行時無提示
          variable定義的變量是綁定變量




          SQL> var id
          變量   id
          數據類型   NUMBER
          SQL> begin
            2  :id:=0;
            3  end;
            4  /


          PL/SQL 過程已成功完成。

          SQL> print id

                  ID
          ----------
                   0

          SQL> select :id from dual;

                 :ID
          ----------
                   0





          SQL>   Select Created, Log_Mode, Log_Mode From V$Database;

          CREATED        LOG_MODE     LOG_MODE
          -------------- ------------ ------------
          20-1月 -08     NOARCHIVELOG NOARCHIVELOG

           
          SQL>
          SQL> define a ="abc";
          SQL> select &a from dual ;
          原值    1: select &a from dual
          新值    1: select abc from dual
          select abc from dual
                 *
          第 1 行出現錯誤:
          ORA-00904: "ABC": 標識符無效


          SQL> select &a as  a  from dual ;
          原值    1: select &a as  a  from dual
          新值    1: select abc as  a  from dual
          select abc as  a  from dual
                 *
          第 1 行出現錯誤:
          ORA-00904: "ABC": 標識符無效


          SQL> select to_char(&a)    from dual ;
          原值    1: select to_char(&a)    from dual
          新值    1: select to_char(abc)    from dual

          select to_char(abc)    from dual
                         *
          第 1 行出現錯誤:
          ORA-00904: "ABC": 標識符無效


          SQL> define ab ="1";
          SQL> select to_char(&a)    from dual ;
          原值    1: select to_char(&a)    from dual
          新值    1: select to_char(abc)    from dual

          select to_char(abc)    from dual
                         *
          第 1 行出現錯誤:
          ORA-00904: "ABC": 標識符無效


          SQL>
          原值    1: select to_char(&ab)    from dual
          新值    1: select to_char(1)    from dual

          T
          -
          1

           
          SQL> define vs_str=a;

          SQL> select vs_str from dual;
          select vs_str from dual
                 *
          第 1 行出現錯誤:
          ORA-00904: "VS_STR": 標識符無效


          SQL> select vs_str from dual;
          select vs_str from dual
                 *
          第 1 行出現錯誤:
          ORA-00904: "VS_STR": 標識符無效


          SQL> set VS_STR= null ;
          SP2-0158: 未知的 SET 選項 "VS_STR="
          SQL> set VS_STR=null ;
          SP2-0735: 未知的 SET 選項開頭 "VS_STR=nul..."
          SQL> set VS_STR=null
          SP2-0735: 未知的 SET 選項開頭 "VS_STR=nul..."
          SQL> set VS_STR= null
          SP2-0158: 未知的 SET 選項 "VS_STR="
          SQL> define VS_STR= null
          SQL> select nvl(VS_STR,1) from dual ;
          select nvl(VS_STR,1) from dual
                     *
          第 1 行出現錯誤:
          ORA-00904: "VS_STR": 標識符無效


          SQL> select nvl(&VS_STR,1) from dual ;
          原值    1: select nvl(&VS_STR,1) from dual
          新值    1: select nvl(null,1) from dual

          NVL(NULL,1)

          -----------
                    1

          SQL> define VS_STR= 2
          SQL> select nvl(&VS_STR,1) from dual ;
          原值    1: select nvl(&VS_STR,1) from dual
          新值    1: select nvl(2,1) from dual


            NVL(2,1)
          ----------
                   2





          SQL*PLUS環境“&”字符'的用法


               在SQL*PLUS默認環境里會把'&字符'當成變量來處理.

                  有些時候我們也需要在SQL>的符號下輸入'&字符', 只需要改變SQL*PLUS下一個環境變量define即可.
                  
                  SQL> set define off;

                  是把默認的&綁定變量的功能取消, 可以把'&字符'當成普通字符處理

                  SQL> set define on;

                  打開&綁定變量的功能, &后面的字符串當變量使用.

                  SQL> show define;

                  查看當前SQL*PLUS的define狀態
                  
                  舉例說明:
                  ---------------------------------------------------------------        
                  SQL> CREATE TABLE TEST3 (
                            ID    NUMBER (2)    PRIMARY KEY,
                            NAME  VARCHAR2 (20));
                  
                  SQL> show define;
                  define "&" (hex 26)                  
                  
                  SQL> insert into test3 values(1,'sgs&a&n');


                  Enter value for a: abc
                  Enter value for n: 456
                  old   1: insert into test3 values(1,'sgs&a&n')
                  new   1: insert into test3 values(1,'sgsabc456')


                  1 row created.

             
                  SQL> set define off;

                  SQL> insert into test3 values(2,'sgs&a&n');
                  
                  1 row created.

                 
                  SQL> select * from test3;

                  ID NAME
                  -- --------------------
                   1 sgsabc456
                   2 sgs&a&n

          posted on 2008-08-01 14:47 小高 閱讀(2726) 評論(0)  編輯  收藏 所屬分類: Oracle

          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 儋州市| 顺义区| 永兴县| 介休市| 崇文区| 连州市| 连江县| 渭源县| 临西县| 杭锦旗| 济南市| 安徽省| 吉水县| 九龙县| 雷波县| 黄冈市| 青川县| 涡阳县| 宜兴市| 论坛| 紫阳县| 龙里县| 福建省| 牟定县| 镇平县| 新巴尔虎右旗| 弋阳县| 华亭县| 湖南省| 衢州市| 江川县| 东海县| 南充市| 临西县| 乾安县| 金溪县| 宁都县| 绥滨县| 舒城县| 巴彦县| 临安市|