PL/SQL模塊學習之一、基本概念學習

1.登陸

D:\app\Administrator\product\11.2.0\dbhome_1\BIN>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 33 12:19:01 2020

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn as sys/oracle #格式錯誤,根據下面提示修改登陸參數
SP2-0306: 選項無效。
用法: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]]
其中 <logon> ::= <username>[/<password>][@<connect_identifier>]
      <proxy> ::= <proxyuser>[<username>][/<password>][@<connect_identifier>]
SQL> conn sys/oracle   #後應該爲設置好的密碼
ERROR:
ORA-01017: invalid username/password; logon denied


SQL> conn sys/Password
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER


SQL> conn sys/Passwordas SYSDBA
已連接。

2.PL\SQL語句塊

SQL> set serveroutput on; # 默認輸出顯示是關閉,需要手動打開
SQL> 
SQL> DECLARE
  2  var_name varchar2(30);
  3  BEGIN
  4  SELECT ENAME INTO var_name
  5  from SCOTT.EMP
  6  WHERE EMPNO=7902;
  7  DBMS_OUTPUT.put_line('var_name is : '||var_name);
  8  END;
  9  / # /表示執行語句
var_name is : FORD
PL/SQL procedure successfully completed

3.DBMS_OUPUT包
其中存儲過程PUT_LINE將數據庫服務器返回的數據存放到緩存,可設置緩存大小

SQL>set seroutput on size 4000; 

在這裏插入圖片描述
3.替代變量
&符號表示替代變量

SQL> DECLARE
  2  var_name varchar2(30);
  3  var_empno number :=&b_EMPNO;
  4  BEGIN
  5  SELECT ENAME INTO var_name
  6  from SCOTT.EMP
  7  WHERE EMPNO=var_empno;
  8  DBMS_OUTPUT.put_line('var_name is : '||var_name);
  9  END;
 10  /
var_name is : CLARK
PL/SQL procedure successfully completed

SQL> set verify on;
SQL> 
SQL> DECLARE
  2  var_name varchar2(30);
  3  var_empno number :=&b_EMPNO;
  4  BEGIN
  5  SELECT ENAME INTO var_name
  6  from SCOTT.EMP
  7  WHERE EMPNO=var_empno;
  8  DBMS_OUTPUT.put_line('var_name is : '||var_name);
  9  END;
 10  /
&b_EMPNO: 7782
var_name is : CLARK
PL/SQL procedure successfully completed

&&和&不同的是,只要當前PL/SQL定義相同的替代變量,在執行PL\SQL塊時,只需要輸入一次,而&需要多次。

SQL> BEGIN
  2    DBMS_OUTPUT.PUT_LINE('TOM is from : '||'&country');
  3    DBMS_OUTPUT.PUT_LINE('larry is from : '||'&country');
  4  END;
  5  /
&country: American 
&country: England #需要多次輸入
TOM is from : American
larry is from : England
PL/SQL procedure successfully completed

SQL> BEGIN
  2    DBMS_OUTPUT.PUT_LINE('TOM is from : '||'&&country');
  3    DBMS_OUTPUT.PUT_LINE('larry is from : '||'&country');
  4  END;
  5  /
&country: England 
&country: England  #只輸入了一次
TOM is from : England
larry is from : England
PL/SQL procedure successfully completed
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章