尝试使用被引用的2个表进行查询,但显然我为第二个表选择了不合适的$apply()
s。我甚至可以在这里使用INTO
声明,或者我如何进行UNION ALL
声明?我的代码示例如下:
INNER JOIN
答案 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;
此外,请勿使用numeric
和char
,如果您有选择,最好使用number
和varchar2
。
如果您仍希望使用union
,则首先需要使用数组,例如dbms_sql.varchar2a
和dbms_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.