Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Oracle SQL中是否可以将参数作为关键字传递?_Sql_Oracle_Select_Keyword_Oracle19c - Fatal编程技术网

在Oracle SQL中是否可以将参数作为关键字传递?

在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 ---------- -------------- -------------

在Oracle 19c中,是否可以执行以下操作:

从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