sqlplus执行文件:sqlplus user/pass@cibsdb < sqlfile.sql ##执行sqlfile.sql脚本
#!/bin/bash
NAME="$1"
sqlplus -S u_test/iamwangnc <<EOF
select * from tab where tname = upper('$NAME');
exit
EOF
为了安全要求每次执行shell都手工输入密码
$ vi test5.sh
#!/bin/bash
echo -n "Enter password for u_test:"
read PASSWD
sqlplus -S /nolog <<EOF
conn u_test/$PASSWD
select * from tab;
exit
EOF
$ chmod +x test5.sh
$ ./test5.sh
为了安全从文件读取密码
对密码文件设置权限, 只有用户自己才能读写.
$ echo 'iamwangnc' > u_test.txt
$ chmod g-rwx,o-rwx u_test.txt
$ vi test6.sh
#!/bin/bash
PASSWD=`cat u_test.txt`
sqlplus -S /nolog <<EOF
conn u_test/$PASSWD
select * from tab;
exit
EOF
$ chmod +x test6.sh
$ ./test6.sh
sqlplus的结果存储在文件中
#!/bin/sh
sqlplus -S "test/unimas"<<EOF
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
spool spool_file
SELECT * from teacher;
spool off
exit;
EOF
或者
spoolSql(){
sql=$1;
filepath=$2;
sqlplus -S "test/unimas"<<EOF
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
spool filepath
$sql;
spool off
exit;
EOF
}
spoolSql "select * from sys_info" "sys_info.txt"
与下列代码效果是相同的:
#!/bin/sh
sqlplus -S "test/unimas"<<EOF > spool_file
set heading off
set feedback off
set pagesize 0
set verify off
set echo off
SELECT * from teacher;
exit;
EOF
--End--
oracle demo1:
sqlfun(){
sql=$1;
info=`sqlplus -S /nolog <<!
set linesize 8000
set heading off
set feedback off
conn ${username}/${password}@${dbname}
set pagesize 0
set verify off
set echo off
${sql};
exit
!`
echo $info
}
使用:
cou=`sqlfun "select count(1) from sys_info"`
oracle demo2:
spoolfun(){
sql=$1;
filepath=$2;
sqlplus -S /nolog <<!
set heading off
set echo off
set feedback off
set page 0
set linesize 32766
set trimout on
set frimspool on
set newpage none
set sqlblanklines off
set trims on
set timing off
set serveroutput off
set verify off
conn ${username}/${password}@${dbname}
${sql};
exit
!
}
使用:
spoolfun "select * from sys_info" >> "sys_info.txt"
while read sys_no sys_name
do
echo "$sys_no $sys_name"
done < sys_info.txt
informix demo3:
ifxSqlfun(){
sql=$1;
presql='SET LOCK MODE TO WAIT 10;output to pipe "cat" without headings' ;
sql=$presql$sql;
echo "$sql"|dbaccess $ifxdbname 2 >/dev/null;
}
使用方法:
sys_no_list=`ifxSqlfun "select sys_no from systeminfo"`
sys_no_str=`echo ${sys_no_list} |sed 's/ /,/g'`
informix demo4:
ifxISqlfun(){
sql=$1;
echo "$sql"|dbaccess $ifxdbname 2 >/dev/null;
}
使用:
ifxSqlfun "update sys_info set sys_name='zgs' where sys_no='00'"
sys_name=`ifxSqlfun "select sys_name from sys_info"
分享到:
相关推荐
本文旨在为读者提供一个在Oracle环境中进行Unix Shell脚本编写的起点。为了实现这一目标,本文被分为两个主要部分:“构建基础”和“实践示例”。其中,“构建基础”部分将介绍一些必需的基本概念;而“实践示例”...
它主要包括了OCI(Oracle Call Interface)、OCCI(Oracle Call Interface for C++)、ODBC(Open Database Connectivity)和JDBC(Java Database Connectivity)等接口,这些接口使得开发者能够编写各种语言的应用...
- **基础语法**:Shell脚本使用Bash或其他Shell语言编写,包括变量、条件语句、循环、函数等元素。 - **调用RMAN**:在Shell脚本中,可以通过`sqlplus`或`rman`命令来执行RMAN操作,如启动数据库实例、执行备份...
只要正确编写和传递Here Document,就能够灵活地控制sqlplus执行各种复杂的数据库操作。记住,为了确保语句的正确执行,需要正确转义SQL语句中的特殊字符,并确保输入的SQL语法正确无误。通过熟练掌握这一技巧,可以...
开发者可以编写脚本来执行特定的SQL命令,例如使用`sqlplus`工具连接到Oracle数据库,运行`EXPDP`或`IMPDP`命令进行数据泵导出和导入操作。此外,脚本还可以包含时间控制逻辑,如cron定时器,以便在指定时间自动执行...
通过编写存储过程、函数、触发器等,可以实现数据库操作的封装和逻辑控制。 4. **Shell脚本**:在Unix/Linux环境中,DBA通常会用Bash或其他Shell脚本来组合多个命令或SQL*Plus脚本。这可以通过调用SQL*Plus并传递...
标签中的"plsql"指的是PL/SQL,Oracle数据库的编程语言,它可以用来编写存储过程、函数、触发器等。在shell脚本中执行的SQL脚本可能包含了PL/SQL代码。 总之,`execsqlscript`这个话题涉及到了shell脚本编程、...
- 通过批处理文件或shell脚本,可以自动化执行一系列SQLPLUS命令,这对于数据库维护和数据迁移非常有用。 总之,SQLPLUS是Oracle数据库管理员和开发人员日常工作中不可或缺的工具,熟练掌握其使用能够极大地提升...
- 可以使用记事本来编写SQL语句,并保存为`.sql`文件,如`a.sql`。然后在`sqlplus`中执行这个文件: ```shell @a.sql ``` - 如果文件位于其他路径下,比如`D:\demo.txt`,可以直接执行这个文件: ```shell @D...
7. **PL/SQL**:PL/SQL是Oracle特有的编程语言,结合了SQL和过程编程,常用于编写存储过程、函数和触发器。这些数据库对象可以直接在数据库中执行,提高了应用程序的性能和安全性。 8. **备份恢复**:Oracle提供...
2. **创建Shell脚本**:接下来,创建一个Shell脚本来调用Oracle客户端工具(如sqlplus)并执行SQL脚本。Shell脚本(ss.sh)中包含了执行日期的记录、输出文件路径的设定以及调用SQL脚本的具体命令。 3. **设置...
2. **Shell脚本编程**:编写shell脚本是DBA日常工作中不可或缺的一部分,用于自动化重复性任务。手册会介绍Bash Shell的语法,如变量、条件语句、循环、函数等,以及如何使用`sed`, `awk`, `grep`等文本处理工具。 ...
1. **导出数据至文本文件**:通过编写shell脚本来执行SQL查询,将db1中的tab1表数据导出为逗号分隔值(CSV)格式的文本文件。此脚本需包含处理SQL输出格式、去除不必要的行和字符,以及数据格式转换等步骤。 - ...
此外,还要掌握PL/SQL编程语言,用于编写存储过程、触发器和函数,以实现复杂的业务逻辑。 安全方面,Oracle数据库支持用户权限管理、角色分配、审计功能以及加密技术。DBA需要定期进行权限审查,确保只有授权用户...
可以通过编写 shell 脚本来实现这一点。例如,下面是一个简单的脚本,用于根据进程 ID 获取当前用户的详细信息: ```bash #!/bin/sh sqlplus /nolog CONNECT /AS SYSDBA COL MACHINE FORMAT A30 COL PROGRAM ...
- 可以编写shell脚本或其他类型的脚本来自动执行数据库操作。 #### 七、同义词操作 **1. 创建同义词:** - **创建同义词:** ```sql CREATE SYNONYM synonym_name FOR object_owner.object_name; ``` **2. ...