1.登陸
D:\app\Administrator\product\11.2.0\dbhome_1\BIN>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 3 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