sql存储过程in参数
㈠ java调用oracle存储过程 关于sql里面in函数参数的问题
调用存储过程是java 把组合起来的字符串传到数据库后台操作,如果你in ( pkStagesPersonArray),传到数据库后台还是 in ( pkStagesPersonArray) 而非你想要的 in('1330251','1336140' )所以你应该把pkStagesPersonArray 里面的内容转换成 '1330251','1336140' 再拼接起来
㈡ 关于sqlserver中存储过程里面in关键字的使用
首先就是@chooseid的问题
如果你这样in的话
即使你的 @chooseid=1,2,3
他也会把这几个看做一个整体
也就是把 id 同 '1,2,3'这个整体去比对
而不是拆开
这样的话只能用动态去构建
declare @sql varchar(1000)
set @sql=''
select @sql='delete from table1 where id in ('+ @chooseid+') and uid='+@uid
exec(@sql)
动态构建 也是可以增加@uid的条件的啊...
不太明白你的意思
你可以把代码写全
肯定是可以动态的
写全了 我给你写
㈢ 如何用SQL语言定义一个存储过程, 带In型参数p_tno
CREATE PROCEDURE [dbo].[yourSPName]
@tno Int
AS
BEGIN
select * from teacherinfo where p_tno=@tno
END
--执行
yourSPName 123
㈣ sql 存储过程 IN参数表名
以下写法供参考:
CREATE PROCEDURE `test1`(IN tab_name VARCHAR(40) )BEGIN
SET @t1 =CONCAT('SELECT * FROM ',tab_name );
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;END $$
㈤ oracle 存储过程sql中in 参数怎么传入调试
右击存储过程,选择
测试create
or
replace
procere
pd1(p_1
number,p_2
number,p_3
number)
is
v_sql
varchar2(4000);
begin
v_sql:='select
*
from
table
where
id
in('||p_1||','||p_2||','||p_3||')';
execute
immediate
v_sql;
end;
㈥ SQL 存储过程 where in 的问题 带参数的!!
方法二肯定不行,@id是字符串不是集合
方法一中要这样写:
set @SelectText = 'update ffzs_unit set unitname='''+@name+''' where uid in ('+@id+')'
对于SQL中,字符串要有单引号
你不要execute( @SelectText)
先改成 select @SelectText
看看输出的字符串到底是什么,然后在查询分析器中测试一下语法,再改原有的.
㈦ SQL中存储过程参数传递有哪几种方法如何获取存储过程的返回值
参数传递?
参数有in参数、out参数、in out参数
变量可用set和select赋值
获取返回值只需设置变量、到时输出就行
单行数据定义固定变量数、
如果结果是数据集、要用游标cursor
㈧ sql 存储过程 in () 参数问题
你好。
写个例子
create
proc
abcd
@param
nvarchar(200)
as
select
*
from
room
where
roomid
in
(@param
)
exec
abcd
8
或者
exec
abcd
'8'
roomid是
int类型的。
直接调用就可以把。
㈨ SQL 存储过程中参数怎么使用
参数定义
单个参数
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
注:
SQL
Server
的
OUTPUT
需要写在变量数据类型后面。
SQL
Server
没有
IN
OUT
关键字
OUTPUT
已经相当于
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
参数的默认值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定参数名称调用
此部分使用
“参数默认值”那一小节的存储过程。
用于说明当最后2个参数是有默认的时候,如何跳过中间那个。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0
㈩ MSSQL数据库 :如何给 存储过程中的 IN() 传递参数,谁能够帮忙修改一些。
中的项不固定大小,应该选一个足够大的值,varchar(1000)
CREATE PROCEDURE [dbo].[Stat_MultiplesLoadByUnionAll]
( @Cells nvarchar(255),@name1 varchar(1000) )
as
begin
if (@name1 <>'' or @name1 is not null)
begin
select @UnionTable=isnull(@UnionTable+' union all select '+@Cells+' from ',' select '+@Cells+' from ) +quotename(Name) from sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 and name in (' + @name1 =')'
end
end
--注意@name1 传入的格式 是'tab1','tab2','tab3'................ 这样的,才能拼对