2013-11-03 46 views
1

我聲明和初始化像這樣的變量:如何將多行值分配給綁定變量?

var test CLOB 
exec :test := q'< 
many many lines 
many many lines 
>' 

我想我真的沒有想到字符串引用到PL-SQL塊的外面工作的這種語法,但如果有一個等價的SQLPlus?特別是,是否有一種語法不需要在引號之間的每一行都加以修改(在文件中的每個換行符之前放置一個轉義符)?我期望這個SQLPlus腳本是由一個shell腳本生成的,其中clob的值剛剛從另一個文件中獲取。

+0

我找到這篇文章......但它不會在我這邊工作,我有oracle客戶端10.2.0.2.x.看看它是否適合你:http://plsqlnotes.blogspot.com.br/2012/04/sqlplus-multi-line-quoted-text.html –

+0

無論你想分配給CLOB插入到表中並採取它從那裏。如果它是Oracle SQL Developer中的文件,則具有導入功能。 –

回答

3

execute實際上創建並運行一個PLSQL匿名塊,但它必須在一行中。所以你可以改爲寫這樣的PLSQL塊:

begin 
:test := q'< 
many many lines 
many many lines 
>' ; 
end; 
/

如果夠方便的話。

+0

是的,我現在一直在走這條路......但我仍然可以一次只分配4000個字節。所以我一直把它分解成4000char塊並追加。不完全優雅,但完成工作。 –