2013-03-12 32 views

回答

1

你的問題很模糊,但如果你想獲得在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子句處理此問題,捕獲TOO_MANY_ROWSNO_DATA_FOUND例外。

+0

cursor E1 is select * from tmp_dileep; – user2160359 2013-03-12 10:35:03

+0

確切的提取返回的行數多於請求的行數 – user2160359 2013-03-12 10:44:10

+0

就像我說的,'select into'只在您獲取一條記錄時纔有效。如果你想要處理多個記錄,那麼你可以獲取到一個遊標或使用「批量收集到......」請參閱http://www.oracle.com/technetwork/issue-archive/2008/08-mar/o28plsql -095155.html – Xophmeister 2013-03-12 10:53:19