簡體   English   中英

Oracle SQL 中的 $$(雙美元)是什么意思?

[英]What does $$ (double dollar) mean in Oracle SQL?

此 Create package 查詢在 SQLPlus util cli 中執行而沒有錯誤 -

create or replace package PACKAGE2 as 
$if $$install_ad_zd_sys $then 
procedure LOG( X_MODULE varchar2, X_LEVEL varchar2, X_MESSAGE varchar2); 
function LITERAL(X_VALUE varchar2) return varchar2; 

else procedure LOG_VER; 

$end 
end;
/

只是想知道這里的雙美元是什么意思? 它是 sqlplus 特定的關鍵字嗎?

我嘗試將整個塊作為 jdbc 的一部分運行,但它給出了錯誤“無效的列索引”。 所以,我懷疑這個標志是 sqlplus 特有的,但無法找到它的含義。

這就是我在 java jdbc 中執行上述 sql 的方式

 plSqlstatement = connection.prepareCall(sqlBuffer.toString()); //sqlBuffer contains the whole create package block //like sqlBuffer.append("CREATE OR REPLACE //PACKAGE....").append("/n").append(..next Line) and so on.

這是一個查詢指令

查詢指令提供有關編譯環境的信息。

查詢指令通常出現在選擇指令的boolean_static_expression中,...

...這就是您使用它的方式,因為它在$if條件編譯指令中。

您需要分配一個 value ,您似乎在任何一次執行中都沒有這樣做。 但無論如何它都會通過 SQL*Plus 或 JDBC 編譯(如在這個 db<>fiddle中)。

如果您從 JDBC 調用中收到錯誤,那么您需要查看您是如何運行它的 - 特別是如果您正在對 arguments 進行 get/set 調用,正如錯誤消息所暗示的那樣 - 因為沒有 ZDBC11CAA5BDA99F77E6FB4DAZBD82 設置為

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM