在Oracle SQL中是否可以将参数作为关键字传递?
在Oracle 19c中,是否可以执行以下操作:在Oracle SQL中是否可以将参数作为关键字传递?,sql,oracle,select,keyword,oracle19c,Sql,Oracle,Select,Keyword,Oracle19c,在Oracle 19c中,是否可以执行以下操作: 从my_表中选择* 由我的上校订购:迪尔 其中:dir是ASC或DESC。我知道我可以使用用例,但我正在寻找更简单的方法。可能吗?对 SQL> select * From dept order by deptno &par_ad; Enter value for par_ad: desc DEPTNO DNAME LOC ---------- -------------- -------------
从my_表中选择*
由我的上校订购:迪尔
其中:dir
是ASC
或DESC
。我知道我可以使用用例,但我正在寻找更简单的方法。可能吗?对
SQL> select * From dept order by deptno &par_ad;
Enter value for par_ad: desc
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERATIONS BOSTON
30 SALES CHICAGO
20 RESEARCH DALLAS
10 ACCOUNTING NEW YORK
SQL> /
Enter value for par_ad: asc
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
不可以。只能使用动态SQL执行此操作。对于数字排序列,可以在
order by
子句中将其乘以1或-1。对于字符串,它变得更复杂。这能回答你的问题吗?不,允许这是一个邀请SQL注入-考虑如果<代码>:dir < /代码>绑定到像“代码> ASC”之类的东西;落桌学生代码>…要学究,替换是sqlplus/sqlcl/SQL开发人员的一项功能。如果您使用的是另一个客户端,这可能不起作用。@eaolson,问题是:“可能吗?”。我发布的示例表明这是可能的。对吧?:)我不能在我的用例中使用&VAR
,只能使用:VAR
。