sqlplus执行linux命令,linux下的sqlplus命令

在shell脚本中通过调用sqlplus来执行SQL及一些数据库命令。下面来介绍一下常用的参数选项(现学现卖4ebc32092102d508cedcc09c4e654292.gif)

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

[oracle@localhost 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时的目录,示例如下:

[oracle@bys001 oradiag_oracle]$ ls    a.sql  diag    [oracle@bys001 oradiag_oracle]$ cat a.sql     select sysdate from dual;    [oracle@bys001 oradiag_oracle]$ sqlplus bys/bys    BYS@bys1>@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

BYS@bys1>col aa format 99,999,999      设置abc列的列宽是8位,并用逗号隔开---数字列宽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值