存储过程中可以将一段字符串直接当成变量传进sql里面吗

如何写?例如我要传(t.bal>=100 and t.bal<10000)这个变量
2025-04-27 02:59:12
推荐回答(4个)
回答1:

这种想法是可以实现的,就是在存储过程里使用SQL语句进行拼接,方法具体就是:1.定义时设置字符参数(例如Input_sql   IN VARCHAR2),2.    VC_SQL := 'SELECT * FROM  TABLE_A '||Input_sql;就可以实现你的需求

但是这里个人建议,最好不要使用这种方法,因为这种做法实在欠妥当,不能把字段名作为参数,至于为什么建议你可以看看一些数据库资料,这里建议使用字段的定值作为参数,比如你提出的100和10000。这是个人的一些想法,希望对你有所帮助。

回答2:

可以,但是如果这段字符串中含有表名或者列名的话
sql整体就需要作为一个字符串来执行

回答3:

可以,跟你在程序里拼sql语句一回事。

回答4:

可以,你要在存储过程里拼接sql才行