2013-07-22 86 views
3

我發現這條線在SQL代碼:什麼是「@」在SQL *做加

@../../sql_scripts/create_tables.sql 

它有什麼作用?我知道@@file.sql意味着運行file.sql,當我們想要稍後提供參數值時可以使用@,但在這裏我有@後跟一個文件名。我知道有一個類似的問題,但它只包含查詢中的@

+2

@DarkCthulhu - 不是這個問題的重複。這不是一個參數。 Sorin什麼工具處理這個SQL? –

+0

我的錯誤。不是同一個問題。 –

+1

你是什麼意思的SQL,TSQL,PSQL或其他與SQL風格的語法?您問題中的代碼作爲標準SQL無效。您可能正在使用一些將該行作爲包含或執行的預處理器。 – Jodrell

回答

4

這裏的@不是SQL語言的一部分。這可能是SQL解釋器的命令,可能是Oracle SQL * Plus。

SQL * Plus有許多單字符命令,如@/(其中執行緩衝SQL),;可當您在.sql文件遇到他們來令人費解。在Oracle 9i文檔中記錄了here。在那裏你會看到與@@的區別。

documentation for Oracle 11g Release 2,點擊下一節查看@@參考。

+0

看起來可能是候選人。 – Jodrell

1

@允許您將另一個腳本導入您在SQL * Plus中運行的SQL腳本。

例如,該執行的otherscript.sql的內容在指定點:

PROMPT about to run other script 

@otherscript.sql 

PROMPT finished running other script 

另一個例子,該插入另一個文件的內容插入到語句在SQL要執行的中間*加:

SELECT * FROM mytable WHERE 
@predicates_for_mytable.sql 
AND bla = 1; 

唯一的條件是@必須出現在行的第一個字符。

相關問題