如何在pl/sql脚本中调用表值?

如何在pl/sql脚本中调用表值?,sql,oracle,plsql,Sql,Oracle,Plsql,如何在pl/sql脚本内部调用 SELECT d.device_id, d.state_id, ds.distributor INTO a1, b1, c1 FROM device_t d, device_smartcard_t ds WHERE d.poid_id0 = ds.obj_id0 AND d.device_id = e1.device_id; 您的问题非常模糊,但如果您希望访问PL/SQL块中的这些

如何在pl/sql脚本内部调用

SELECT d.device_id, 
       d.state_id, 
       ds.distributor 
INTO   a1, b1, c1 
FROM   device_t d, 
       device_smartcard_t ds 
WHERE  d.poid_id0 = ds.obj_id0 
       AND d.device_id = e1.device_id; 

您的问题非常模糊,但如果您希望访问PL/SQL块中的这些值,可以执行以下操作:

declare
  a1 device_t.device_id%type;
  b1 device_t.state_id%type;
  c1 device_smartcard_t.distributor%type;
begin
   select d.device_id, d.state_id, ds.distributor
   into   a1,          b1,         c1
   from   device_t d
   join   device_smartcard_t ds 
   on     d.poid_id0  = ds.obj_id0 
   and    d.device_id = E1.device_id; -- (What's E1?)

   -- Do what you like with a1, b1 and c1
end;
/

我冒昧地将你的交叉连接改为内部连接。请注意,如果查询返回多个或没有结果,Oracle将抛出异常;您可以使用
exception
子句处理此问题,捕获
行过多
未找到数据
异常。

光标E1是从tmp\u dileep中选择的*;精确获取返回的行数超过请求的行数,就像我说的,
select-into
仅在获取一条记录时有效。如果您想处理多条记录,那么您可以将其提取到游标中或使用
批量收集到
。。。请参阅@user2160359-若这是调用表值的意思,则需要使用显式游标来修复太多行异常。你需要做什么?要写PL/SQL程序还是一些SQL脚本?我想写PL/SQL程序。请发送一个示例程序从多个表中获取数据。我的数据在一个表中,我想从两个不同的表中获取数据(具有连接)