(+)是外连接
select colname into :d from tablename where colname=:a;

解决方案 »

  1.   

    aa.a(+)=bb.a表示外连接,
    查出bb表中的所有列(无论aa表中是否有匹配值),同时bb表中有匹配的记录也查询出来,没有就为空。上面的pl/sql语句在PB里能好用吗?我不清楚。
    在SQL*Plus里应该好用。
      

  2.   

    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>
      

  3.   

    select aaa into d from a  where colname=aaa;
    提示:PL/SQL 过程已成功完成。但不能显示结果。而:
    select aaa into :d from a  where colname=:aaa;
    就提示
    SP2-0552: 未说明结合变量"D"
    这是为什么呢?