如何为一次多次选择传递参数

时间:2019-06-18 12:28:46

标签: sql oracle plsql

我目前正在尝试声明一个可以在多个选择中使用的参数,当我尝试启动当前查询时,它会特别给我带来一些错误:

  

PLS-00103::在出现以下情况之一时遇到符号“文件结尾”

请问您有什么主意或指导我正确的声音吗?

declare
 Bon  NUMBER(20) := &1; --Example : 12345678
begin
 select * 
   from BonTable
  where BonChamp = Bon
    and BonChamp2 = 'FBON'
    and BonChamp3 is not null;

 select * 
   from BonTable2
  where BonChamp4 = Bon
    and rownum = 1;
end;

我想问我我的参数,然后执行两个选择,当前它问我参数,但它使我回到错误状态

1 个答案:

答案 0 :(得分:4)

如果在plsql中进行选择,则应使用into子句。 例如当您的选择语句始终仅返回一行时,您可以声明表的行类型的变量:BonTable%rowtype

如果您的select语句返回多行,则应声明表类型为BonTable%rowtype

declare
 Bon  NUMBER(20) := &1; --Example : 12345678
 rec1 BonTable%rowtype;
 rec2 BonTable2%rowtype;
begin
 select * 
   into rec1  
   from BonTable
  where BonChamp = Bon
    and BonChamp2 = 'FBON'
    and BonChamp3 is not null;

 select * 
   into rec2 
   from BonTable2
  where BonChamp4 = Bon
    and rownum = 1;
end;