存储过程字符串变量
① oracle在写存储过程时怎样将变量和字符串进行连接
变量直接写,要连接字符串的话,用 || 这个符号,后面的字符串用单引号引!
例如 变量 V_str 字符串' select emp from table where '
连接后为:
------------------------------------------------
' select emp from table where '
|| V_str
------------------------------------------------
希望可以帮助到你!
② sql存储过程 字符串问题
SET
ANSI_NULLS
ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
ALTER
PROCEDURE
[dbo].[Test]
--@PageIndex
int,
@table
varchar(200),
@Sqlwhere
varchar(50)
--@Sqlorder
varchar(50),
as
declare
@sql
varchar(8000)
--set
@PageSize
=
5
set
@sql='select
*
from
'+@table+'
where
'+@Sqlwhere+'
order
by
Employee_ID
DESC'
exec(@sql)
③ oracle 定义一个存储过程,中间生成一个字符串存储过程,该怎么执行那个字符串存储过程
是的
execute immediate sqlStr
但是你的ParastrSQL 拼接方式有问题
ParastrSQL := 'select count(*) as Total from [' + ParatblName + ']' +
' where ' + ParastrWhere;
改为
ParastrSQL := 'select count(*) as Total from ' ||ParatblName||'where'||ParastrWhere;
oracle中用||拼接字符串
④ SQL 执行存储过程,字符串参数如何拼接
变量直接写,要连接字符串的话,用 || 这个符号,后面的字符串用单引号引!
例如 变量 V_str 字符串' select emp from table where '
连接后为:
------------------------------------------------
' select emp from table where '
|| V_str
------------------------------------------------
希望可以帮助到你!
⑤ 存储过程中可以将一段字符串直接当成变量传进sql里面吗
这种想法是可以实现的,就是在存储过程里使用SQL语句进行拼接,方法具体就是:1.定义时设置字符参数(例如Input_sql INVARCHAR2),2. VC_SQL:='SELECT*FROM TABLE_A'||Input_sql;就可以实现你的需求
但是这里个人建议,最好不要使用这种方法,因为这种做法实在欠妥当,不能把字段名作为参数,至于为什么建议你可以看看一些数据库资料,这里建议使用字段的定值作为参数,比如你提出的100和10000。这是个人的一些想法,希望对你有所帮助。
⑥ mysql存储过程中like子句字符串变量怎么用
试试 like concat('%',@word,'%')
如果有帮助到你,请点击采纳
⑦ 如下例存储过程,我想引入一个字符串变量a,然后从数据库查询,但是运行后结果集却是数据库的所有记录,
可能代码是正确的,只是你的数据就是全部符合条件。
报错信息截图上来,或者在查询器中直接运行一下:
SELECT *
FROM 'table'
⑧ 存储过程如何 解析字符串
方法:
1.创建split函数(转)
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--date :2005-4-20
--Author :Domino
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end
用法:select * from dbo.f_split('A:B:C:D:E',':')
2.存储过程
CREATE PROCEDURE InsertRecord
@Qstring varchar(50),
AS
insert into names(name1,name2,name3,name4) values
(select * from dbo.f_split(@Qstring,',')
3.调用存储过程
⑨ sql server 存储过程 表变量名无法用在查询字符串中
要注意一点:用execute执行的动态SQL中是无法直接使用外部所定义的变量的(就好像执行动态SQL内与外是两个不同的会话。用存储过程sp_executesql倒是可以传递其他标量类型的参数,但是也无法传递表变量)。而你要实现的功能是在执行动态SQL之前,已经把数据查询到一个表变量中了,然后要在动态SQL中再查询此表变量,目前来说是不能实现的。
可以使用临时表,或者游标,这两个可以在动态SQL中保持有效状态。
使用游标的示例如下:
declare@tbtable(usernamenvarchar(20))
insertinto@tb
select'Andy'
union
select'Jack'
declarecurcursorfor
selecttop10usernamefrom@tb
declare@sqlnvarchar(1000),@usernamenvarchar(20)
set@sql='opencur
fetchnextfromcur
into@v_user_name'
executesp_executesql@sql,N'@v_user_namenvarchar(20)output',@usernameout
closecur
deallocatecur
select@username
而对于你的要在动态SQL中执行select语句,直接使用临时表会比较方便些。
⑩ 存储过程里变量怎么转换成字符串
字符型转浮点型用atof
或者strtod(后者安全点),它的默认类型是double型。
用法:比方说你定义了CString的对象str,要想转换为浮点型可以定义一个浮点型变量例如double
a
=
atof(str)就可以了