操作Oracle数据库可以使用sqlplus连接数据库之后,再交互式的使用数据库。另一种非交互的方式就是通过shell直接执行sql命令,可以直接在shell CLI端口执行命令,或者是通过shell脚本的方式。从sql命令的输入方式上,这种非交互的方式又可以分为两种,一种是命令行直接输入,另一种是sql文件输入。
1. 命令行直接输入方式
这种方式就是把要执行的命令直接传给sqlplus,-S是指silent模式。注意此处的反斜杠转义。
- sqlplus -S "/ as sysdba" << EOF
- set pagesize 0 feedback off verify off heading off echo off
- SELECT value FROM v$parameter WHERE name = "background_dump_dest";
- exit
- EOF
使用脚本的话,如下所示,注意反斜杠。
- if test $# -lt 1
- then
- echo You must pass a SID
- exit
- fi
- ORACLE_SID=$1; export ORACLE_SID
- DUMP_DIR=`sqlplus -S "/ as sysdba" << EOF
- set pagesize 0 feedback off verify off heading off echo off
- SELECT value FROM v\$parameter WHERE name = "background_dump_dest";
- exit
- EOF`
- echo ${DUMP_DIR}
2. 通过文件输入方式
这种方式是先把sql语句存储在一个文件中,这时就不需要反斜杠了,而且输入文件必须要以.sql为后缀。
- [oracle@node ~]$ cat /tmp/sqllines.sql
- set pagesize 0 feedback off verify off heading off echo off
- SELECT value FROM v$parameter WHERE name = "background_dump_dest";
- exit
- [oracle@node ~]$ sqlplus -s "/ as sysdba" @/tmp/sqllines
- /u01/app/oracle/diag/rdbms/live/live/trace
这种方式同样可以写成一个shell脚本。
- [oracle@node ~]$ cat /tmp/sql
- if test $# -lt 1
- then
- echo You must pass a SID
- exit
- fi
- ORACLE_SID=$1; export ORACLE_SID
- echo "
- set pagesize 0 feedback off verify off heading off echo off
- SELECT value FROM v$parameter WHERE name = "background_dump_dest";
- exit
- ">/tmp/plsql_scr.sql
- # --------------------------------
- # Execute plsql script
- # --------------------------------
- if [ -s /tmp/plsql_scr.sql ]; then
- echo -e "Running SQL script to find out bdump directory...
"
- $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" @/tmp/plsql_scr.sql >/tmp/plsql_scr_result.log
- fi
- echo " Check the reslut "
- echo "------------------------"
- cat /tmp/plsql_scr_result.log
- exit
更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle 错误“ORA-19809: limit exceeded for recovery files”处理办法Oracle 11g数据库启动错误总结相关资讯 SQL Oracle shell
- SQL 新手指南 (09/10/2015 10:57:53)
- SQL导入txt以及SQL中的时间格式操 (01/25/2015 11:35:04)
- SQL 事务及实例演示 (08/12/2014 10:36:37)
| - SQL 中的正则函数 (06/28/2015 15:59:48)
- SQL 集合(笔记) (01/15/2015 20:19:06)
- SQL中varchar和nvarchar有什么区别 (02/23/2013 09:11:03)
|
本文评论 查看全部评论 (0)