linux shell 执行sql

  • Post author:
  • Post category:linux




在shell下执行oracle数据库的sql




####	函数
####	说		明:执行sql语句
####	输入参数:{sql语句}{数据库tns}{数据库用户名}{数据库用户密码}
####  输出参数:sql执行结果
function exe_sql
{
sql=$1
oracle_sid=$2
user_name=$3
user_pwd=$4
error_code=`
sqlplus -S -L /nolog<<EOF
connect $user_pwd/$user_pwd@$oracle_sid
set termout off;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
$sql;
commit;
quit
EOF`
echo "$error_code"
if [ -z "$error_code" ];then
	return 0
else
  return 1
fi
}



sid:



数据库实例标识,也就是数据库实例的名称,在控制面板-管理工具-服务,打开这个文件,你可以看到一个OracleService

xxx

,其中 “xxx “,就是


你的数据库实例的名称,也就是sid.



tns:


数据连接字符串,代表一个数据库的连接,配置好你的数据网络连接,就会有一个这样的串。这个串可以在你的oracle安装根目录\ora92\network\admin\tnsnames.sql里面找到,你要可以在你的oracle安装目录下查找这个文件,


orac   =

(DESCRIPTION   =

(ADDRESS_LIST   =

(ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   cyl)(PORT   =   1521))

)

(CONNECT_DATA   =

(SERVER   =   DEDICATED)

(SERVICE_NAME   =   D7i)

)

)

上面的 “orac “,就是你要的tns,你可以自己复制重写一个tns,把HOST指向你的数据库服务器IP,

SERVICE_NAME   =你的数据库sid