linux 进sqlplus命令,linux下的sqlplus命令
在shell腳本中通過調用sqlplus來執行SQL及一些數據庫命令。下面來介紹一下常用的參數選項(現學現賣)
1)-S
sqlplus -S/nolog
該參數選項登錄時沒有提示信息輸出
2)EOF
EOF通常與<
[.....]cat startup.sh
#!/bin/bash
#“>”表示把當前輸入的結果使用文件*.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;
當我們不使用文件來記錄日志時,它會直接輸出到屏幕上。
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對應的員工姓名。注意上述的一個符號,該符號不是引號,是數字鍵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 變量名 定義了變量并帶參數exit, 將變量v_coun返回賦給了shell的$?
備注:NEW_VALUE通常的使用方法為:
column?column_name new_value var_name
new_value是將所獲得的列值賦予到變量名,然后該變量名可以參與后續處理
5)sqlplus文件操作命令
1.spool將屏幕顯示及查詢結果輸入到指定文本文件中
spool d:\1.txt
select * from emp;
spool off
2.執行和編輯指定位置的SQL腳本
start d:\test.sql
@ d:\test.sql
執行當前目錄下的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.將當前SQL緩沖構內SQL語句保存到指定文件
save d:\test2.sql
將文件中SQL語句調入SQLPLUS緩沖區
get d:\test2.sql
顯示緩沖區內語句
list
注意:單引號和雙引號內大小寫敏感。
關鍵字不能縮寫,也不能跨行書寫,單引號內也不跨行寫。
每個子句是一行。
字符串用單引,列別名用雙引。
標點符號要用英文標點,中文出錯。
6)SQLPLUS中顯示設置-列長、分頁
1.更改分頁、行寬設置
show linesize
show pagesize
set linesize 100?????? ——默認80字符
set pagesize 20?? ?? ——默認14行
SQL>?set?numwidth???? 38好像設置數字型的默認顯示寬度?set?num?4?,所以顯示會有變?##
2.設置指定顯示的列名的寬度--列是字符及數字
col username format a20 ??? 設置 username列的列寬是20個字符-----字符列寬
col username for a4
[email?protected]>col aa format 99,999,999??????設置abc列的列寬是8位,并用逗號隔開---數字列寬
總結
以上是生活随笔為你收集整理的linux 进sqlplus命令,linux下的sqlplus命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亮度均匀性 matlab,求:亮度保持的
- 下一篇: 如何linux查看硬盘文件,如何使用li