2010-04-09 20 views
25

मेरे पास एक H2 डेटाबेस (http://www.h2database.com) है और मैं एक सादा सरल एसक्यूएल स्क्रिप्ट (उदाहरण के लिए एक परीक्षण डेटाबेस पॉप्युलेट करने के लिए) के माध्यम से एक फ़ाइल को एक ब्लॉब फ़ील्ड में डालना चाहता हूं। मुझे पता है कि कोड के माध्यम से ऐसा कैसे करना है, लेकिन मुझे यह नहीं पता कि एसक्यूएल स्क्रिप्ट कैसे करें।एक एसक्यूएल स्क्रिप्ट के माध्यम से एक बीएलओबी डालें?

मैं, पथ पारित करने के लिए अर्थात

INSERT INTO mytable (id,name,file) VALUES(1,'file.xml',/my/local/path/file.xml); 

लेकिन यह विफल रहता है की कोशिश की।

कोड (उदाहरण के लिए जावा) के भीतर, यह एक फ़ाइल वस्तु बनाने और उस में पारित करने के लिए आसान है, लेकिन सीधे एक एसक्यूएल स्क्रिप्ट से, मैं अटक हूँ ...

किसी भी विचार?

डेविड

उत्तर

32

परीक्षण के लिए, आप शाब्दिक hex bytes डाल सकते हैं या RAWTOHEX(string) फ़ंक्शन का उपयोग नीचे दिखाए गए अनुसार कर सकते हैं।

create table a(id integer, item blob); 
insert into a values(1,'54455354'); 
insert into a values(2, RAWTOHEX('Test')); 
select UTF8TOSTRING(item) from a; 
TEST 
Test 

परिशिष्ट: एक फ़ाइल से BLOB क्षेत्रों लोड हो रहा है के लिए, FILE_READ(fileNameString) एक उपयोगी विकल्प हो सकता है।

insert into a values(3, FILE_READ('file.dat')); 
+0

वास्तव में परीक्षण के लिए एक बहुत ही उपयोगी समारोह की तरह दिखता है देखते हैं! संकेत – dm76

+3

@ डेविड मिशेल के लिए धन्यवाद: मैंने आपके प्रश्न के सार को अनदेखा किया; ऐसा लगता है कि आप ऊपर जोड़ा गया 'FILE_READ' चाहते हैं। – trashgod

+0

वास्तव में, वही है जो मैं चाहता था। चीयर्स! – dm76

संबंधित मुद्दे