1) Takip edebileceğim üç yaklaşımı olan oracle seçim sorgusundan json yapmalıyım. PL/JSON *:Bir CLOB için> 32k (ör. 60.000 karakter) için Oracle'da JSON nasıl oluşturulur?
SELECT JSON_ARRAY(json_object('id' VALUE employee_id,
'data_clob' VALUE data_clob
)) from tablename;
Ayrıca ben bu yaklaşım
2) Eğer yama yapamıyorsanız/o sürümü ile çalışma Lewis Cunningham ve Jonas Krogsboell tarafından yazılmış mükemmel bir paket var olan denedi http://pljson.sourceforge.net/
Mükemmel bir paket (Çok sayıda veritabanı yüklemesinde kullandım).
Verilen örnekler iyi ve çoğu senaryoyu kapsamaktadır.
declare
ret json;
begin
ret := json_dyn.executeObject('select * from tab');
ret.print;
end;
/
bu cevap olarak Mansiyon çok ama böyle büyük clob için çalışıyorum. Return results of a sql query as JSON in oracle 12c
3) diğer yaklaşım biz seçme sorgusu sonrasında dize arada kullanabilirsiniz olabilir.
FOR rec IN (SELECT employee_id, data_clob
FROM tablename) LOOP
IF i <> 1 THEN
v_result := v_result || ',';
END IF;
v_result := v_result || '{"employee_id":' || to_char(rec.employee_id) || ',"data_clob": ' || rec.data_clob || '}';
i := i + 1;
END LOOP;
v_result := v_result || ']}';
3 yaklaşım benim sorunu çözmek ama döngü aday istemiyoruz. Bunu işlemek için kehanette bir çözüm var mı?
Çözüm olup olmadığını kontrol ediyorum ancak bu döngü olmadan çalışmayacak.
url bazı çözüm sağlamak vardır, ben bu çalıştı ama çalışmıyor .Same sorunu geliyor.
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 57416, maximum: 4000)
bunu nasıl yapılabilir bana söylemek mümkün yapabileceğimi? Bu soruya yanıt olarak
bu durumda Veritabanı sürümü nedir? Oracle 12c (12.1.0.2), sorununuzu çözebilecek yerel bir json veri tipine sahiptir (https://docs.oracle.com/database/121/ADXDB/json.htm). Ayrıca, EXTENDED olarak ayarlanabilen bir MAX_STRING_SIZE parametresi de vardır (32k VARCHAR2 değişkenini verir). Neden tüm bu bilgiler için: Oracle Veritabanı'nda, JSON veri ortak SQL veri türleri VARCHAR2, CLOB ve BLOB kullanılarak saklanır (şuna bakın: https://docs.oracle.com/database/122/ADJSN/json-in- oracle-database.htm # ADXDB6371). – g00dy
Parametre MAX_STRING_SIZE parametresinin STANDARD olarak ayarlandığını ve sizin durumunuza CLOB (4GB) ile VARCHAR2 (yani 4000b) dönüştürmeye çalıştığınız bildirir. 60k gibi bir şeye ihtiyacınız varsa, VARCHAR2'yi, ancak CLOB'u kullanamazsınız, yani tüm verileri tek bir değişkene sahip olmak istiyorsanız. – g00dy