当前位置:首页 » 存储配置 » 存储过程入参

存储过程入参

发布时间: 2023-04-15 09:08:39

‘壹’ sql server 中 一个要输入参数和输出参数的存储过程。

1、创建存储过程,包含入参、出参,返回入参除以的数据;

create or replace procere test_proc(in_num number, out_num out number)

as

begin

out_num := in_num/2;

end;

‘贰’ 执行存储过程怎么传入参数

在Oracle中定义存储过程的时候有定义传入参数的个数和类型的。

createprocerepro_name(v_para1invarchar2,v_para2invarchar2)

调用的时候:

declare
v_para1varchar2(30):='parameter1';
v_para2varchar2(30):='parameter2';
begin
pro_name(v_para1,v_para2);
end;
/

‘叁’ sql 存储过程 怎么传入参数

执行带参数的存储过程的方法如下:
Exec sp_configure 'allow updates',1 --允许更新系统表。
exec dbo.User_ChangeObjectOwnerBatch 'OldOwner','dbo'
以上是两个例子。
SQL Server中执行带参数的存储过程的方法是:
EXEC 存储过程名字 '参数1','参数2',数值参数
EXEC 是一个关键字。
字符串参数使用单引号括起来,数值参数不需要使用单引号

‘肆’ 存储过程中参和入参的标志分别是

in,out。in|out存储过程具有入参和出参两种参数选择,in表示的是入参,out表示的是出参,衫罩在使用过程的时候,入参必须得有仔握对应的变量传入,出参得或戚闹有对应的变量接收。

‘伍’ Oracle调用存储过程多个入参可以不全部传参么

不行,就算没有对应的参数,也要传一个空值,不然会调用不到方法。

‘陆’ ORACLE中如何为存储过程传递参数

第一种:只读。参数是只读的,不能修改,即调用时传递进来的是常量,或者变量(但变量不能在存储过程中修改正薯)。通常select及DML类型的存储过程传递的是in类型的参数。

第二种:只写。忽略调用语句传递的任何参数,并在函数(过程)内部给这些参数赋值,因此是只写的。(这种情况是在函数或过程内部给参数重新赋值,但重新赋值后的参举御者数是无法被外部调用的(好像游标类型的参数除外))

CREATE OR REPLACE PROCEDURE "SCOTT"."SWAP" (firstValue out
number, secondValue out number) is
temp number;
begin
temp := firstValue;
firstValue := secondValue;
secondValue := temp;
end swap;

外部调用:

set serveroutput on;
declare
firstVal number;
secondVal number;
begin
firstVal := 10;
secondVal := 20;
scott.swap(firstVal,secondVal);
dbms_output.put_line('first is ' || firstVal);
dbms_output.put_line('second is ' || secondVal);
end;

无法在外部访问到firstValue与secondValue的值。此时打印出的结果为:

first is
second is
第三种:读或写。这可以完全控制参数,读取传递的参数的值。可以再函数(过程)内部修改参数的值,在退出函数(过程)后,这些参数被赋给在函数内部写入的值,这样就可以返回多个值。(即入口参数写入值后,可以传递到函数(过程)的外部,供外部调用的时候使用)

ps:函数中的返回值为如下几种:

char; varchar2; number; integer; date; boolean; table; record

SQL> CREATE OR REPLACE PROCEDURE HelloWorld2 (

2 p_user_name IN VARCHAR2,

3 p_out_val OUT VARCHAR2,

4 p_inout_val IN OUT VARCHAR2

5 ) AS

6 BEGIN

7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');

8 p_out_val := 'A';

9 p_inout_val := 'B';

10 END HelloWorld2;

11 /

Procere created.

SQL> DECLARE

2 p_outval VARCHAR2(10);

3 p_inoutval VARCHAR2(10) := '~Hi~';

4 BEGIN

5 HelloWorld2('Edward', p_outval, p_inoutval);

6

7 dbms_output.put_line('p_outval=' || p_outval);

8 拆橡dbms_output.put_line('p_inoutval=' || p_inoutval);

9 END;

10 /

Hello Edward~Hi~!

p_outval=A

p_inoutval=B

PL/SQL procere successfully completed.

‘柒’ cx_oracle调用存储过程,入参为自定义对象

在cx_oracle 中定义一个参数比如 rec_data TBL_MY_OBJECT;

然后给予赋值 比如 rec_data.id =XXX;rec_data .DATA =XXX;
然后调用INIT_MY_TYPE(rec_data );即可。

‘捌’ 怎么在java代码中设置oracle存储过程中的入参和出参

public String insertJCSP(Map parmaters) {
// TODO Auto-generated method stub
String str=null;
Connection conn = null;
CallableStatement csm = null;
conn = (Connection) sqlSession.getSqlSessionFactory().openSession()
.getConnection();
try {
csm = conn
.prepareCall("{Call pr_insert_JcInfo(?,?,?)}"); //调用存储过程
csm.setString(1, (String) parmaters.get("lottId")); //第一个入参数
csm.setString(2, (String) parmaters.get("idata"));//第二个入参数
csm.registerOutParameter(3, java.sql.Types.VARCHAR);//返回参数
csm.execute();
str = csm.getString(3); //取得返回参数

热点内容
安卓汽车盲区辅助哪里下载 发布:2025-05-16 16:02:53 浏览:361
码尚编程 发布:2025-05-16 15:55:39 浏览:444
android全局字体 发布:2025-05-16 15:53:19 浏览:573
jsp在服务器编译先转译成什么 发布:2025-05-16 15:41:36 浏览:981
svn服务器编译 发布:2025-05-16 15:41:26 浏览:965
照片被涂鸦擦掉如何看到信息安卓 发布:2025-05-16 15:36:43 浏览:179
手机怎么配置内存大 发布:2025-05-16 15:18:06 浏览:166
xpshop源码 发布:2025-05-16 15:17:25 浏览:404
android弹出通知 发布:2025-05-16 14:59:20 浏览:511
数据库EST 发布:2025-05-16 14:59:15 浏览:198