Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
Sql server 在Oracle的基本选择中使用变量_Sql Server_Oracle_Tsql_Plsql - Fatal编程技术网

Sql server 在Oracle的基本选择中使用变量

Sql server 在Oracle的基本选择中使用变量,sql-server,oracle,tsql,plsql,Sql Server,Oracle,Tsql,Plsql,我有sql server的背景。通常,当试图从数据库构建一些报告或回答问题时,我会编写在查询中多次使用变量的查询。我不想每次更改查询时都更新3-4次值,而是使用一个变量,以便只更新一次值。为了简洁起见,我在下面编写了一个简单的查询,说明了在尝试提取报表时在SQL Server中的操作 declare @test numeric(3) select @test = 683 select myColumn from myTable where myColumn = @test 在oracle中,这

我有sql server的背景。通常,当试图从数据库构建一些报告或回答问题时,我会编写在查询中多次使用变量的查询。我不想每次更改查询时都更新3-4次值,而是使用一个变量,以便只更新一次值。为了简洁起见,我在下面编写了一个简单的查询,说明了在尝试提取报表时在SQL Server中的操作

declare @test numeric(3)
select @test = 683
select myColumn from myTable where myColumn = @test

在oracle中,这与什么是等价的?我试图写一些类似的东西,但得到了一些关于需要into语句的错误消息。根据我收集的信息,您可以在oracle的变量中选择一些内容,但您不能像我上面所做的那样以只读方式使用变量。甚至可以在oracle中编写与上面类似的查询吗?

声明:

SQL> variable x number
SQL> begin :x := 3; end;
  2  /
PL/SQL procedure successfully completed.
分配:

SQL> variable x number
SQL> begin :x := 3; end;
  2  /
PL/SQL procedure successfully completed.
使用:

SQL> select :x from dual;
        :X
----------
         3
1 row selected.

注意:在Oracle中,:代替@,如:x代替@x;赋值运算符为:=,而不是=。

声明:

SQL> variable x number
SQL> begin :x := 3; end;
  2  /
PL/SQL procedure successfully completed.
分配:

SQL> variable x number
SQL> begin :x := 3; end;
  2  /
PL/SQL procedure successfully completed.
使用:

SQL> select :x from dual;
        :X
----------
         3
1 row selected.

注意:在Oracle中,:代替@,如:x代替@x;赋值运算符是:=,而不是=。

如果您使用的是SQL Developer,请编写查询并用于变量“:”

select myColumn from myTable where myColumn = :test
当您启动(Ctrl-Enter)查询时,SQL开发人员将询问:test的值

如果要动态更改select语句,请参阅答案:


如果您使用的是SQL Developer,请编写查询并使用变量“:”

select myColumn from myTable where myColumn = :test
当您启动(Ctrl-Enter)查询时,SQL开发人员将询问:test的值

如果要动态更改select语句,请参阅答案:


看看请注意,这只是真正的交互工作。从编程的角度来看,还有其他方法。请注意,这只是真正的交互工作。在编程上还有其他方法。我看到很多oracle问题的答案都包括在脚本之前的这个SQL>。我使用的是sql navigator,我没有任何类似于在查询语言的行前加前缀的东西。我真的需要输入SQL>?不,你不需要。如果使用SQL*Plus,这就是控制台提示,SQL*Plus是Oracle最简单的数据库客户端界面。如果在SQL Developer、Toad等中编写查询,则不需要提示。在SQL navigator中运行查询时,我没有收到任何错误,但查询结果是一个空白列,而不是数字。我怀疑这可能是sql navigator或安装的问题,而不是查询的问题:-/Uhm。。。对不起,我认为“variable x number”是一个SQL*Plus命令。我不熟悉SQL Navigator;使用它的人可能会有所帮助。看看Toadworld上这个旧威胁中的回答是否有帮助:我看到很多oracle问题的答案都包括在脚本之前的SQL>。我使用的是sql navigator,我没有任何类似于在查询语言的行前加前缀的东西。我真的需要输入SQL>?不,你不需要。如果使用SQL*Plus,这就是控制台提示,SQL*Plus是Oracle最简单的数据库客户端界面。如果在SQL Developer、Toad等中编写查询,则不需要提示。在SQL navigator中运行查询时,我没有收到任何错误,但查询结果是一个空白列,而不是数字。我怀疑这可能是sql navigator或安装的问题,而不是查询的问题:-/Uhm。。。对不起,我认为“variable x number”是一个SQL*Plus命令。我不熟悉SQL Navigator;使用它的人可能会有所帮助。看看Toadworld的这个旧威胁中的回答是否有帮助: