读书人

请问:oracle中怎么在select中使用变量

发布时间: 2014-01-09 23:07:34 作者: rapoo

请教:oracle中如何在select中使用变量
定义变量;
给变量赋值;
select * from 表where 字段=变量;

上面的SQL语句在SQL Server中使用是非常简单的, 但小弟初学oracle, 不明白oracle如何处理, 请各位大侠指点!
[解决办法]

引用:
定义变量;
给变量赋值;
select * from 表where 字段=变量;

上面的SQL语句在SQL Server中使用是非常简单的, 但小弟初学oracle, 不明白oracle如何处理, 请各位大侠指点!

动态SQL
[解决办法]
v_sql:='select * from 表where 字段='
[解决办法]
var1
[解决办法]
'';
[解决办法]
引用:
Quote: 引用:


引用:


象这样接接SQL语句, 难道就不怕SQL注入?

这只是举例,前面肯定要有自定义判断啊
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:


引用:


象这样接接SQL语句, 难道就不怕SQL注入?

这只是举例,前面肯定要有自定义判断啊


搞这么复杂, 就没有一个简单一点类似sql server的做法吗?

还有这种动态变量绑定
execute immediate 'select * from table where col=:1' using var1;
[解决办法]
我不知道sqlserver怎么做的,但我觉得任何关系到用户输入的都应该先有特定的判断筛选,
这都嫌复杂就太不专业了
[解决办法]
引用:
Quote: 引用:


我目前的SQL是:
select * from dxjxt.jxtudprecv_view mt where CARDID='EE9935F5'
如你所说, 用动态变量绑定的话, 如何把具体值给换成变量呢?

var varchar2(20);
execute immediate 'select * from dxjxt.jxtudprecv_view mt where CARDID=:1' into xxx(接收你的查询结果) using var1;
[解决办法]

declare
v_card_id varchar2(40);--定义变量;
v_cur sys_refcursor;
begin
v_card_id := 'EE9935F5'; --给变量赋值;
open v_cur for select * from 表 where 字段=v_card_id;

读书人网 >oracle

热点推荐