当前位置:首页 » 存储配置 » 存储过程调用shell

存储过程调用shell

发布时间: 2024-06-09 19:53:37

A. shell脚本里怎样调用plsql存储过程

对于存储我是不很了解,但是可以通过这种方式来调用oracle的sqlplus。

#catsql.sh

#!/bin/bash

su-oracle-c'

sqlplus-S/assysdba<<EOF

selectstatusfromv$instance;

exit

EOF

'

#bashsql.sh
STATUS
------------------------
OPEN

B. shell调用oracle存储过程

#!/bin/sh
sqlplusabc/passwd<<EOF
setlinesize500;
setpagesize10000;
spooloutput.txt
calla1();
calla2();
calla3();
commit;
spooloff
quit;
EOF

大概就是这个方式。

需要修改一下oracle用户密码,如果存储过程有参数还需要修改调用的地方。

C. shell中怎么获取存储过程的输出参数给变量

#下面的代码是对于从oracle的sqlplus返回变量值给shell的例子
output=`sqlplus -s unitele/lemontea << EOF
set heading off feedback off verify off
drop function test_get_param_value_p;
CREATE OR REPLACE function test_get_param_value_p
(
is_citycode in varchar2
)
return varchar2
is
on_value varchar2(100);
begin
on_value :='100000';
dbms_output.put_line(on_value);
dbms_output.put_line(is_citycode);
return on_value;
end;
/
select test_get_param_value_p('501') from al;
exit
EOF
`
echo "Oracle的输出变量值:"$output
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
存储过程 myproc(in_num in number,out_num out number)
sql脚本模板
先编辑一个mysql.sql文件,内容如下:
------------
var nret number;
execute :nret := 0;--初始化
call myproc(in_code,:nret)--执行存储过程,in_code会被替换掉
/
select 'retcode[' || :nret || ']retcode' from al--显示结果
/
quit;
-------------
SHELL脚本mysh.sh,内容如下
-------------
#./mysh.sh 123
cd /home/myshell
sed "s/in_code/$1/" mysql.sql > mysql01.sql
#根据sql脚本模板生成实际脚本
sqlplus usr/pwd@db result$1.txt
#执行sql脚本并把结果输入result$1.txt
echo ok!
-------------
在LINUX下执行./mysh.sh 123,生成result123.txt,myproc输出参数在'retcode['和']retcode'之间。

D. java如何实现对存储过程的调用

import java.sql.*;
public class ProcereTest
{
public static void main(String args[]) throws Exception
{
//加载驱动
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
//获得连接
Connection conn=DriverManager.getConnection("jdbc:odbc:mydata","sa","");

//创建存储过程的对象
CallableStatement c=conn.prepareCall("{call getsum(?,?)}");

//给存储过程的第一个参数设置值
c.setInt(1,100);

//注册存储过程的第二个参数
c.registerOutParameter(2,java.sql.Types.INTEGER);

//执行存储过程
c.execute();

//得到存储过程的输出参数值
System.out.println (c.getInt(2));
conn.close();

}
}

E. oracle存储过程中调用一个shell脚本,用于进行一些操作,已经赋权限,但是执行不了

shell的环境变量问题,你在shell内部的变量是获取不到外部执行结果的。

F. shell如何获取oracle存储过程返回值

类似下面的方法:

fcp_login="<user>/<password>"
ret_value=`sqlplus-s$fcp_login<<EOF
setheadingoff
setfeedbackoff
setpages0
settrimspoolon
VARIABLEx_outnumVARCHAR2(30);
EXECUTEimportUserInfoDate1g(:x_outnum);
printx_outnum
exit;
EOF`

G. 请问编写Shell脚本,通过数据库接口调用sybase存储过程,这个shell应该怎么写呢

用isql -u 用户名 -p 密码 -S server_name连接
再在里面写 call 存储过程

你在网上再查查资料,我以前用过,个别语法有点遗忘了

热点内容
王者荣耀如何设置自己账号密码 发布:2025-05-20 06:23:02 浏览:725
虞姬的脚本 发布:2025-05-20 06:23:00 浏览:119
java发送手机短信 发布:2025-05-20 06:21:56 浏览:706
python编程符号大全 发布:2025-05-20 06:20:37 浏览:550
大学压缩课 发布:2025-05-20 06:19:49 浏览:859
关于五的乘法运算文字脚本 发布:2025-05-20 06:11:22 浏览:684
androidhttp乱码 发布:2025-05-20 06:00:39 浏览:855
拉伸压缩 发布:2025-05-20 05:45:30 浏览:926
阿里云的服务器修建在哪里 发布:2025-05-20 05:44:49 浏览:770
网盘存储文件 发布:2025-05-20 05:32:05 浏览:245