Как да конвертирате низ в clob?

Имам процедура

PROCEDURE test_proc (text IN Clob) as
Begin
  insert into table_name values(SYSDATE,xmltype.createxml(text));
end ;

И бягам

begin
  test_proc('.....text...');
end;

Дължина на текста 64.8 KB

грешка: PLS-00172: твърде дълъг низов литерал

Но ако вмъкна текста в Value/Expresion (SQL Navigator 6.7.0 Relase) и изпълня процедурата -> PL/SQL блокът е изпълнен


person Andre Kirpitch    schedule 26.09.2013    source източник
comment
Какъв е скриптът за създаване на вашата таблица? Изпълнявайки кода с таблица CREATE TABLE table_name (when DATE, content XMLTYPE);, получавам ORA-31011: XML parsing failed, което е нормално.   -  person mavroprovato    schedule 26.09.2013
comment
CREATE TABLE table_name (date_rep DATE, save_rep XMLTYPE) XMLTYPE save_rep STORE AS OBJECT RELACIONAL XMLSCHEMA name_schema.xsd ELEMENT name_element; , където name_schema.xsd е DBMS_XMLSCHEMA.registerSchema   -  person Andre Kirpitch    schedule 26.09.2013
comment
Максималният varchar2 е 32K.   -  person Jeffrey Kemp    schedule 27.09.2013


Отговори (1)


Проблемът не е в преобразуването, проблемът е във вашия низов литерал. Той е твърде голям, за да може да се справи с анализатора на Oracle SQL.

Може би вместо това да заредите CLOB от файл?

person mavroprovato    schedule 26.09.2013
comment
Но ако вмъкна текста в SQL Navigator 6.7.0 Relase и изпълня процедурата -› PL/SQL блокът е изпълнен - person Andre Kirpitch; 27.09.2013