PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

रूपांतरण पोस्टग्रेज करने के लिए Oracle DBMS_LOB.WRITEAPPEND

यह आपकी बड़ी वस्तु के आकार पर निर्भर करता है। जब आपकी बड़ी वस्तुएं लगभग 500MB से कम होती हैं, तो आपको LOB का उपयोग करने की आवश्यकता नहीं होती है (PostgreSQL शब्द LO का उपयोग करता है), और आप text का उपयोग कर सकते हैं या varchar प्रकार - काम varchar . के समान है . इस आकार के बाद आपको LO API का उपयोग करना चाहिए।

CREATE OR REPLACE FUNCTION writeappend(oid, text)
RETURNS void AS $$
DECLARE
  content bytea;
  fd int;
BEGIN
  content := convert_to($2, getdatabaseencoding());
  fd := lo_open($1, 131072);
  PERFORM lo_lseek(fd, 0, 2);
  IF length(content) <> lowrite(fd, content) THEN
    RAISE EXCEPTION 'not all content was written';
  END IF;
  PERFORM lo_close(fd);
END;
$$ LANGUAGE plpgsql;

postgres=> select lo_creat(-1);
┌──────────┐
│ lo_creat │
╞══════════╡
│    20653 │
└──────────┘
(1 row)

postgres=> select writeappend(20653, e'Hello\r\n');
┌─────────────┐
│ writeappend │
╞═════════════╡
│             │
└─────────────┘
(1 row)

postgres=> select writeappend(20653, e'Hello\r\n');
...

postgres=> select convert_from(lo_get(20653),getdatabaseencoding());
┌──────────────┐
│ convert_from │
╞══════════════╡
│ Hello\r     ↵│
│ Hello\r     ↵│
│              │
└──────────────┘
(1 row)

तो आप एलओ एपीआई का उपयोग कर सकते हैं, लेकिन बुनियादी प्रकारों को प्राथमिकता दी जानी चाहिए। इन प्रकारों के लिए सीमाएं आमतौर पर काफी अच्छी होती हैं - और बुनियादी प्रकारों के साथ काम करना बहुत अधिक आरामदायक होता है - कुछ संभावनाओं जैसे कि पूर्ण पाठ के साथ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django डेटटाइम फ़ील्ड टाइमज़ोन के बिना टाइमस्टैम्प फ़ील्ड उत्पन्न करने के लिए

  2. ऑफ़सेट-निष्क्रिय और ऑफ़सेट-जागरूक डेटाटाइम घटा नहीं सकते

  3. जटिल पोस्टग्रेज क्वेरी

  4. हरोकू पीजी:पुल पासवर्ड प्रमाणीकरण विफल

  5. डेबेज़ियम पोस्टग्रेज़ काफ्का कनेक्टर दिल की धड़कन एलएसएन नहीं कर रहा है