linux 进sqlplus命令,linux下的sqlplus命令
在shell腳本中通過調(diào)用sqlplus來執(zhí)行SQL及一些數(shù)據(jù)庫命令。下面來介紹一下常用的參數(shù)選項(現(xiàn)學(xué)現(xiàn)賣)
1)-S
sqlplus -S/nolog
該參數(shù)選項登錄時沒有提示信息輸出
2)EOF
EOF通常與<
[.....]cat startup.sh
#!/bin/bash
#“>”表示把當(dāng)前輸入的結(jié)果使用文件*.log存儲起來
sqlplus -S/nolog>startlog.log<
connect sys/sys as sysdba
startup;
exit
EOF
exit;
[.....]cat shutdown.sh
#!?bin/bash
sqlplus -S/nolog>shutlog.log<
conn sys/sys as sysdba
shutdown immediate;
quit
EOF
exit;
當(dāng)我們不使用文件來記錄日志時,它會直接輸出到屏幕上。
3)下面,我們來看一個sqlplus與shell交互的例子:
[.....]$ cat test02.sh
#!/bin/ksh
read -p "Please input emplyees id>" emp_id
name=`sqlplus -S /nolog <
set heading off
set feedback off
conn hr/hr
select first_name || ‘ ‘ || last_name emp_name
from employees where employee_id = ‘$emp_id‘;
exit
EOF`
if [ "$name" == "" ]; then
echo "No data found";
else
echo "$name"
fi
exit;
[.....]$ sh test02.sh
Please input emplyees id>100
Steven King
[.....]$ sh test02.sh
Please input emplyees id>1
No data found
[.....]$
該程序的思想是,用戶輸入一個employee_id并顯示該ID對應(yīng)的員工姓名。注意上述的一個符號,該符號不是引號,是數(shù)字鍵1旁邊的那個符號。
4)Sqlplus返回值給Shell
[[email?protected] oracle_script]$ cattest3.sh
#!/bin/bash
source ~/.bash_profile
qlplus -S /nolog > result.log<
set heading off
feedback off
pagesize 0
verify off
echo off
numwidth 4
conn scott/tiger
col?coun?new_value?v_coun
select count(*)?coun?from emp;
select * from emp where empno=7369;
exit?v_coun
EOF
VALUE="$?"
echo "The number of rows is$VALUE."
該sqlplus使用 col ?列名 new_value 變量名 定義了變量并帶參數(shù)exit, 將變量v_coun返回賦給了shell的$?
備注:NEW_VALUE通常的使用方法為:
column?column_name new_value var_name
new_value是將所獲得的列值賦予到變量名,然后該變量名可以參與后續(xù)處理
5)sqlplus文件操作命令
1.spool將屏幕顯示及查詢結(jié)果輸入到指定文本文件中
spool d:\1.txt
select * from emp;
spool off
2.執(zhí)行和編輯指定位置的SQL腳本
start d:\test.sql
@ d:\test.sql
執(zhí)行當(dāng)前目錄下的SQL腳本,即:登陸SQLPLUS時的目錄,示例如下:
[[email?protected] oradiag_oracle]$ ls? ? a.sql? diag? ? [[email?protected] oradiag_oracle]$ cat a.sql?? ? select sysdate from dual;? ? [[email?protected] oradiag_oracle]$ sqlplus bys/bys? ? [email?protected]>@a.sql? ? SYSDATE? ? ?--------? ? 05-SEP-13
編輯指定的SQL腳本
edit d:\test.sql
3.&替代變量 ?如:
select * from emp where empno=&;
會提示輸入EMPNO的值。交互式
4.將當(dāng)前SQL緩沖構(gòu)內(nèi)SQL語句保存到指定文件
save d:\test2.sql
將文件中SQL語句調(diào)入SQLPLUS緩沖區(qū)
get d:\test2.sql
顯示緩沖區(qū)內(nèi)語句
list
注意:單引號和雙引號內(nèi)大小寫敏感。
關(guān)鍵字不能縮寫,也不能跨行書寫,單引號內(nèi)也不跨行寫。
每個子句是一行。
字符串用單引,列別名用雙引。
標(biāo)點符號要用英文標(biāo)點,中文出錯。
6)SQLPLUS中顯示設(shè)置-列長、分頁
1.更改分頁、行寬設(shè)置
show linesize
show pagesize
set linesize 100?????? ——默認(rèn)80字符
set pagesize 20?? ?? ——默認(rèn)14行
SQL>?set?numwidth???? 38好像設(shè)置數(shù)字型的默認(rèn)顯示寬度?set?num?4?,所以顯示會有變?##
2.設(shè)置指定顯示的列名的寬度--列是字符及數(shù)字
col username format a20 ??? 設(shè)置 username列的列寬是20個字符-----字符列寬
col username for a4
[email?protected]>col aa format 99,999,999??????設(shè)置abc列的列寬是8位,并用逗號隔開---數(shù)字列寬
總結(jié)
以上是生活随笔為你收集整理的linux 进sqlplus命令,linux下的sqlplus命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亮度均匀性 matlab,求:亮度保持的
- 下一篇: 如何linux查看硬盘文件,如何使用li