一尘不染

具有变量但不具有“泪NTO”的简单“ ELECT”。

sql

我有一些具有相同值的不同SELECT查询。我想使用DECLARE之类的东西,但是当我写一个简单的DECLARE时,它说应该是“ INTO”。

如果我只想使用“ SELECT”,如何在不使用“ INTO”的情况下使用此表格?

简而言之,我有两个(或多个)选择:

SELECT * FROM my_table1 WHERE column1=5 and column2=6;

SELECT * FROM my_table2 WHERE col1=5 and col2=6;

现在,我想声明一个像var_col1和var_col2这样的变量,并同时在两个选择查询中使用它们。

我认为这可以工作:

DECLARE
var_col1 number := 5;
var_vol2 number := 6;
BEGIN
SELECT * FROM my_table1 WHERE column1=var_col1 and column2=var_col2;
SELECT * FROM my_table2 WHERE col1=var_col1 and col2=var_col1;
/* and more SELECTs with var_col1 and var_col2 */
END;

但是没有机会…没有过程或功能怎么办呢?


阅读 102

收藏
2021-05-16

共1个答案

一尘不染

当您select * from some_table;使用SQL * Plus编写代码时,SQL*Plus它充当了客户端程序的角色,并且在后台进行了很多工作,涉及从数据库返回的数据,对其进行格式化并显示这些数据。

键入后DECLARE,就开始一个PL / SQL块。现在,您正在调用PL / SQL,而PL / SQL正在调用SQL。结果,您需要决定如何处理PL /
SQL中从SQL返回的数据。做到这一点的方法是通过一个INTO子句和一个变量来接收输出。考虑到这一点,SELECT如果不提供INTO子句,输出数据将流向何处?它必须去某个地方,对不对?

希望这很清楚。

2021-05-16