日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Sqlplus-在&Quot;子句中使用綁定變量的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在一個PL/SQL塊中設置一個綁定變量,并嘗試在另一個查詢的IN表達式中使用它。大概是這樣的:

variable x varchar2(255)

declare
    x varchar2(100);
begin
    for r in (select id from other_table where abc in ('&val1','&val2','&val3') ) loop
    x := x||''''||r.id||''',';
    end loop;
    --get rid of the trailing ','
    x:= substr(x,1,length(x)-1);

    select x into :bind_var from dual;
end;
/

print :bind_var;

select *
from some_table
where id in (:bind_var);

我在嘗試使用”IN”列表中的綁定變量的查詢上收到錯誤(ORA-01722:無效數字)。

print語句產生'123','345',這正是我所期望的。

是否可以像這樣使用綁定變量,或者我是否應該嘗試其他方法?

(使用Oracle 10g)


澄清:

這是一種和解的事情。我想跑步

select *
from some_table
where id in (select id from other_table where abc in ('&val1','&val2','&val3'))

在腳本的主要部分(這里沒有圖示)之前刪除了一大堆記錄。之后我想再次運行它,以驗證some_table中的記錄未被刪除。但是,other_table中的數據確實會被此過程刪除,因此我不能只引用other_table中的數據,因為那里什么都沒有。我需要一種方法來保留other_table.id值,以便以后可以驗證父記錄。

推薦答案

我會將other_table.id存儲在一個PL/SQL表中,然后在查詢中引用該表:

type t_id_table is table OF other_table.id%type index by binary_integer;
v_table t_id_table;

-- fill the table
select id
bulk collect into v_table
from other_table 
where abc in ('&val1','&val2','&val3');     

-- then at a later stage...    

select *
from some_table st
,    table(cast(v_table AS t_id_table)) idt
where st.id = idt.id;

這篇關于Sqlplus-在&Quot;子句中使用綁定變量的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:bind-variables errorsqlplus-usingabindvariablein"IN&amp
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定