我有一些具有相同值的不同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;
但是没有机会…没有过程或功能怎么办呢?
当您select * from some_table;使用SQL * Plus编写代码时,SQL*Plus它充当了客户端程序的角色,并且在后台进行了很多工作,涉及从数据库返回的数据,对其进行格式化并显示这些数据。
select * from some_table;
SQL*Plus
键入后DECLARE,就开始一个PL / SQL块。现在,您正在调用PL / SQL,而PL / SQL正在调用SQL。结果,您需要决定如何处理PL / SQL中从SQL返回的数据。做到这一点的方法是通过一个INTO子句和一个变量来接收输出。考虑到这一点,SELECT如果不提供INTO子句,输出数据将流向何处?它必须去某个地方,对不对?
DECLARE
INTO
SELECT
希望这很清楚。