2017-05-03 79 views

回答

1

我們有需要插入XML文件(如斑點),因此,有腳本插入/更新,並以兩種方式操縱在我們的Oracle遷飛腳本斑點:

一個:通過存儲過程遷移(也就是Flyway *.sql文件中的PL-SQL,而不是普通的SQL)。我們使用Oracle的utl_raw.cast_to_raw()函數。

declare 
    p_surveyBlob raw(10000); 
begin 

p_surveyBlob := utl_raw.cast_to_raw('<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> 
<Survey> 
    <UserOnSite="yes"> 
     <Role>cooper</Role> 
    . . . and so on... 
</Survey>'); 

Insert into SURVEY (FILE_SIZE,FILE_DATA. . . .) 
values (dbms_lob.getlength(p_surveyBlob),p_surveyBlob. . . .); 

COMMIT; 
end; 

這種方法需要BLOB數據是PL-SQL文件的一部分,並且硬編碼這是罰款,對我們的需求..它是測試數據!

注意:我們還以這種方式插入二進制文件(pdfs & images)。好的,所以我們必須事先手動準備數據(通過Cygwin的base64編碼器實用程序運行該文件以將其轉換爲base64字符串)。該字符串,然後用2個Oracle函數用法如下:

utl_encode.base64_decode(utl_raw.cast_to_raw('the base64 string returned by cygwins base64 function'))

兩個:通過Java遷移。 我們從這篇文章How to write/update Oracle blob in a reliable way?瞭解了很多,並且也以這種方式插入/更新測試&開發數據。

注意:我們的構建副本,我們需要到類路徑,然後我們訪問它們的資源流中的所有測試文件,這有助於詹金斯持續構建,並且不會做出關於文件的任何基於位置的假設。

相關問題