UNION或INNER JOIN PL / SQL查询

时间:2015-08-23 08:16:17

标签: oracle plsql oracle11g

尝试使用被引用的2个表进行查询,但显然我为第二个表选择了不合适的$apply() s。我甚至可以在这里使用INTO声明,或者我如何进行UNION ALL声明?我的代码示例如下:

INNER JOIN

2 个答案:

答案 0 :(得分:1)

你不能这样做。

您可以做的是:

 SELECT CVAR1, CVAR2
 INTO v_CVar1, v_CVar2
 FROM CUSTOMER
 WHERE CVAR1 = 5;

 SELECT SVAR1, SVAR2
 INTO v_SVar1, v_SVar2
 FROM SALESMAN;

此外,请勿使用numericchar,如果您有选择,最好使用numbervarchar2

如果您仍希望使用union,则首先需要使用数组,例如dbms_sql.varchar2adbms_sql.number_table数据类型相应地(或创建您的类型)并仅使用一个bulk collect into子句:

 SELECT CVAR1, CVAR2
 BULK COLLECT INTO array1, array2
 FROM CUSTOMER
 WHERE CVAR1 = 5
 UNION ALL
 SELECT SVAR1, SVAR2
 FROM SALESMAN;

答案 1 :(得分:0)

你可以试试这个:

create table customer (
cus_id number(5),
cust_name varchar2(20)
);

insert into customer values(1,'Mahi');
insert into customer values(2,'Raja');

DECLARE
 v_CVar1 VARCHAR2(10); 
 v_CVar2 VARCHAR2(10);
Cursor C1 is
SELECT cus_id, cust_name FROM customer
UNION ALL 
SELECT cus_id, cust_name FROM customer; --Change table name
BEGIN
For rec in C1
Loop
 v_CVar1 := rec.cus_id;
 v_CVar2 := rec.cust_name;
 DBMS_OUTPUT.PUT_LINE('Example : ' || ' ' ||  v_CVar1 || ' ' || v_CVar2 );
End Loop;
END;

<强>输出:

Example :  1 Mahi
Example :  2 Raja
Example :  1 Mahi
Example :  2 Raja

Statement processed.