社区
疑难问题
帖子详情
如何将字段中存储的字符串执行?
zhjzh_zjz
2006-05-08 11:41:43
比如有一字段birthday中存储有字符串 getdate()
如何在 select birthday from person 中得到getdate() 的执行结果,就是当前日期,而不是getdate() 这个字符串?如果是别的函数或者语句存储在字段中再取出的时候如何让它执行呢?请大虾指教!
...全文
192
11
打赏
收藏
如何将字段中存储的字符串执行?
比如有一字段birthday中存储有字符串 getdate() 如何在 select birthday from person 中得到getdate() 的执行结果,就是当前日期,而不是getdate() 这个字符串?如果是别的函数或者语句存储在字段中再取出的时候如何让它执行呢?请大虾指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhjzh_zjz
2006-05-23
打赏
举报
回复
那位高手有比较通用一点的解决办法,感激不尽!
brio8425
2006-05-09
打赏
举报
回复
有加了点见识。。呵呵。。谢谢搂住。。
子陌红尘
2006-05-08
打赏
举报
回复
SQL Server没有这样的内置函数,用户定义函数对执行execute有严格的限制,只允许执行扩展存储过程时调用。
zhjzh_zjz
2006-05-08
打赏
举报
回复
那我test表中存储的是
1 a getdate()
2 b userid()
3 c newid()
...
我想得到的结果是:
1 a 2006-05-08(当前日期)
2 b testid(当前用户)
3 c 10 (新ID)
....
有什么好的办法呢?exec只能单独执行阿,这样的情况不知道如何是好
OracleRoob
2006-05-08
打赏
举报
回复
exec('select getdate()')
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名
declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确
3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?
declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
子陌红尘
2006-05-08
打赏
举报
回复
exec('select getdate()')
zhjzh_zjz
2006-05-08
打赏
举报
回复
又没有别的办法啊?因为我做的是一个通用的东西,要转换的字符串不是可列举的,用case行不通,是否能直接把中间的字符串执行的结果呢?不知道是否有这样的函数,就像javascript中的Eval函数可以直接执行字符串得结果的。exec在语句中不能执行阿,不知道还有什么好的办法。谢谢
powerking2
2006-05-08
打赏
举报
回复
用 EXEC 函数可以执行 字符串SQL 这就是动态SQL的内容
pengdali
2006-05-08
打赏
举报
回复
exec('getdate()')
可以执行字符串
子陌红尘
2006-05-08
打赏
举报
回复
select
case birthday
when 'getdate()' then convert(char(10),getdate(),120)
else birthday
end as birthday
from
person
冷箫轻笛
2006-05-08
打赏
举报
回复
declare @sql varchar(200)
set @sql= 'getdate()'
exec ('select ' + @sql)
oracle
字段
公式怎么
执行
,Oracle 在
存储
过程或函数
中
执行
字符串
sql PDF 下载
本文介绍如何在PL/SQL
中
根据条件拼接SQL
字符串
并
执行
,涉及在
存储
过程或函数
中
动态构建SQL语句。示例代码展示了一个名为CALCULATE_TARGET_SCORE的函数,该函数根据输入参数
执行
不同的SQL查询,并将结果
存储
到变量
中
。在
执行
动态SQL时,使用EXECUTE IMMEDIATE语句,并处理可能的异常。此外,由于函数内部包含了DML语句,因此使用PRAGMA AUTONOMOUS_TRANSACTION来确保事务独立性。最后,文章提到了在查询
中
执行
DML操作时可能会遇到的ORA-14551错误。
Oracle
中
通过游标
执行
带参数的
存储
过程实现解析CLOB
字段
内的xml
字符串
:
本文介绍了解决将时间
字段
误设为
字符串
格式导致的数据操作困难的问题,通过设计
存储
数据的临时表、解析XML
字符串
的
存储
过程以及更新数据表等步骤,有效解决了此问题,确保了数据操作的准确性与效率。
疑难问题
22,297
社区成员
121,728
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章