[英]Using Dynamic Variables in Oracle SQL Developer
嘗試在Oracle SQL Developer中設置WHILE LOOP,但是嘗試設置/定義變量時遇到很多麻煩。 我曾經在PHP中工作過,在PHP腳本中會對此進行聲明。
這是我下面的內容。 該腳本尚未完成,基本上,我將在完成后的數周內將其循環。
VARIABLE MYDateVar2 varchar2(40);
EXEC :MYDateVar2 := '01-JAN-14';
select customer_name,
sum(CASE when to_char(to_date(PLANNED_SHIP_DATE), 'WW') = 40 then (REVISED_QTY_DUE - QTY_SHIPPED) * SALE_UNIT_PRICE end) as Wk40
from customer_order_join
where planned_ship_date >= :MYDateVar2
group by customer_name;
所以我很難將變量'MYDateVar2'重新放回腳本中。 我曾嘗試使用@@和:,但是Oralce SQL Developer不斷提示我輸入值。 我也知道我應該將varchar設置為DATE,但是現在應該沒問題。
有人可以讓我知道如何在腳本中正確插入變量嗎? 謝謝!
只要您告訴SQL Developer運行整個腳本,而不僅僅是select語句,您所做的就很好。 您需要運行腳本(F5),而不是運行語句(Ctrl + Enter)。 如果它獨立運行該語句,則它將始終提示您輸入綁定變量值。
不直接相關,但是...大概您使用了對客戶的NLS設置有效的日期格式,但是您不應該依賴該格式。 始終明確設置格式是比較安全的:
where planned_ship_date >= to_date(:MYDateVar2, 'DD-MON-RR')
但是,如果要循環,則需要編寫PL / SQL,因此您最好在塊內部而不是在客戶端級別聲明變量,除非要將相同的值傳遞給多個塊或存儲過程調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.