1.外连接的用法: SQL> select * from a1;BBB ---------- 101 102 103 104 105SQL> select * from a2;BBB CCC ---------- -------------------- 101 102 105SQL> select * from a1,a2 where a1.bbb(+)=a2.bbb;BBB BBB CCC ---------- ---------- -------------------- 101 101 102 102 105 105SQL> select * from a1,a2 where a1.bbb=a2.bbb(+);BBB BBB CCC ---------- ---------- -------------------- 101 101 102 102 103 104 105 105SQL> 2.没看出有什么问题啊,在sql*plus里面运行 SQL> declare 2 a varchar(50):='first'; 3 --b integer:=30; 4 --c date; 5 d varchar2(30); 6 begin 7 --select sysdate into c from dual; 8 select aaa into d from a where aaa='102'; 9 --select b+50 from dual; 10 end; 11 /PL/SQL 过程已成功完成。SQL>
select aaa into d from a where colname=aaa; 提示:PL/SQL 过程已成功完成。但不能显示结果。而: select aaa into :d from a where colname=:aaa; 就提示 SP2-0552: 未说明结合变量"D" 这是为什么呢?
查出bb表中的所有列(无论aa表中是否有匹配值),同时bb表中有匹配的记录也查询出来,没有就为空。上面的pl/sql语句在PB里能好用吗?我不清楚。
在SQL*Plus里应该好用。
SQL> select * from a1;BBB
----------
101
102
103
104
105SQL> select * from a2;BBB CCC
---------- --------------------
101
102
105SQL> select * from a1,a2 where a1.bbb(+)=a2.bbb;BBB BBB CCC
---------- ---------- --------------------
101 101
102 102
105 105SQL> select * from a1,a2 where a1.bbb=a2.bbb(+);BBB BBB CCC
---------- ---------- --------------------
101 101
102 102
103
104
105 105SQL>
2.没看出有什么问题啊,在sql*plus里面运行
SQL> declare
2 a varchar(50):='first';
3 --b integer:=30;
4 --c date;
5 d varchar2(30);
6 begin
7 --select sysdate into c from dual;
8 select aaa into d from a where aaa='102';
9 --select b+50 from dual;
10 end;
11 /PL/SQL 过程已成功完成。SQL>
提示:PL/SQL 过程已成功完成。但不能显示结果。而:
select aaa into :d from a where colname=:aaa;
就提示
SP2-0552: 未说明结合变量"D"
这是为什么呢?