標籤:blog http 使用 os 檔案 io
涉及到的知識要點
a、帶有一個&的替換變數的用法
b、帶有兩個&的替換變數用法
c、define命令用法
d、accept命令用法
e、定製SQL*Plus環境
f、在glogin.sql檔案中儲存定製結果
g、sqlplus編輯命令
a、帶有一個&的替換變數的用法
1)、使用帶有一個&號的變數值來提示使用者輸入一個值。
eg、
SQL> SELECT empno, ename, sal, deptno FROM emp WHERE empno = &empno;
輸入 empno 的值: 7369
原值 1: SELECT empno, ename, sal, deptno FROM emp WHERE empno = &empno
新值 1: SELECT empno, ename, sal, deptno FROM emp WHERE empno = 7369
EMPNO ENAME SAL DEPTNO
———- ———- ———- ———-
7369 SMITH 8888 20
2)、替換變數中的字串和日期值
使用單引號標誌替換變數中的日期和字串值。
eg、
SQL> SELECT ename, deptno, sal*12 FROM emp WHERE job=‘&job‘;
輸入 job 的值: ANALYST
原值 1: SELECT ename, deptno, sal*12 FROM emp WHERE job=‘&job‘
新值 1: SELECT ename, deptno, sal*12 FROM emp WHERE job=‘ANALYST‘
ENAME DEPTNO SAL*12
———- ———- ———-
SCOTT 20 106656
FORD 20 36000
3)、運行時指定列名、運算式、文本
SELECT empno, ename, job, &column_name
FROM emp
WHERE &condition
ORDER BY &order_column;
輸入 column_name 的值: sal
原值 1: SELECT empno, ename, job, &column_name
新值 1: SELECT empno, ename, job, sal
輸入 condition 的值: sal>=3000
原值 3: WHERE &condition
新值 3: WHERE sal>=3000
輸入 order_column 的值: ename
原值 4: ORDER BY &order_column
新值 4: ORDER BY ename
EMPNO ENAME JOB SAL
———- ———- ——— ———-
7902 FORD ANALYST 3000
7839 KING PRESIDENT 5000
7788 SCOTT ANALYST 8888
7369 SMITH CLERK 8888
b、帶有兩個&的替換變數用法
使用帶有兩個&的變數可以使得該變數可以重複使用,而不必在每次使用時提醒使用者輸入。
SQL> SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name;
輸入 column_name 的值: deptno
原值 1: SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name
新值 1: SELECT empno, ename, job, deptno FROM emp ORDER BY deptno
EMPNO ENAME JOB DEPTNO
———- ———- ——— ———-
7782 CLARK MANAGER 10
7839 KING PRESIDENT 10
7934 MILLER CLERK 10
…
c、define命令用法
建立CHAR類型的使用者變數,當定義一個包含空格的變數時,要用單引號將該變數括起來。
eg、
SQL> define deptname = sales
SQL> define deptname; –查看該變數
DEFINE DEPTNAME = "sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname=UPPER(‘&deptname‘);
原值 1: SELECT * FROM dept WHERE dname=UPPER(‘&deptname‘)
新值 1: SELECT * FROM dept WHERE dname=UPPER(‘sales‘)
DEPTNO DNAME LOC
———- ————– ————-
30 SALES CHICAGO
說明:一個變數將保持在被定義的狀態,直到使用undefine命令將它清除或離開sql*plus。
d、accept命令用法
接收使用者輸入時,建立可定製的使用者提示。
eg、
–提示你輸入一個數值給dept,dept是個變數,可用define命令查看該變數
SQL> accept dept prompt ‘Provide the department name: ‘
Provide the department name: Sales
SQL> define dept; –查看該變數
DEFINE DEPT = "Sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname = UPPER(‘&dept‘);
原值 1: SELECT * FROM dept WHERE dname = UPPER(‘&dept‘)
新值 1: SELECT * FROM dept WHERE dname = UPPER(‘Sales‘)
DEPTNO DNAME LOC
———- ————– ————-
30 SALES CHICAGO
e、定製SQL*Plus環境
使用SET命令來控制當前的會話。
文法:SET system_variable value
eg、SQL> set arraysize 20;
可以使用SHOW命令來查看set設定。
eg、SQL> show arraysize
arraysize 20
說明: set命令用法具體請看” oracle set命令詳解.txt”
f、在glogin.sql檔案中儲存定製結果
glogin.sql檔案包含在登入時需要執行的標準SET命令及其他命令,我們可以更改glogin.sql以包含其他SET命令。
如:設定sqlplus環境的linesize為300,並讓這個變數永久生效在$ORACLE_HOME/sqlplus/admin/glogin.sql(D:\dev\oracle\product\10.2.0\db_1\sqlplus\admin)檔案中添加如下內容:set linesize 300
a
g、sqlplus編輯命令
1)、執行def命令查看編輯器的設定:
SQL> def
2)、總結下:
l–列sql
n–切換活動行(n代表行數字)
a–活動行後增加(append)
i–活動行後插入新行增加(input)
c–替換(change)
eg、c /emp_name/emp_age/
del n–刪除行n
/–執行sql
eg、
SQL> select deptno, dname from dept;
DEPTNO DNAME
———- ————–
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
SQL> i where deptno>20
SQL> l
1 select deptno, dname from dept
2* where deptno>20
SQL> /
DEPTNO DNAME
———- ————–
30 SALES
40 OPERATIONS
SQL> del 2
SQL> l
1* select deptno, dname from dept
SQL> a where deptno>30
1* select deptno, dname from dept where deptno>30
SQL> l
1* select deptno, dname from dept where deptno>30
SQL> /
DEPTNO DNAME
———- ————–
40 OPERATIONS