Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > XDK, PL/SQL


Автор: 3,14 21.12.2004, 17:52
Извиняюсь заранее, возможны неточности в терминологии по стольку по скольку только начинаю этим заниматься

Хочу отобразить XML Schem-у (XSD Файл) в реляцонную модель, для сего использую следующую хранимую процедуру:
Код

CREATE DIRECTORY xml AS 'c:\tmp';

declare
xmlfile BFILE;

BEGIN
xmlfile := BFILENAME( 'XML', 'docbook.xsd' );
dbms_lob.open(xmlfile);
dbms_xmlschema.registerschema
(
 schemaurl => 'c:\tmp\docbook.xsd',
 schemadoc => xmlfile,
 local     => true,
 gentypes  => true,
 genbean   => false,
 gentables => true
);
dbms_lob.close(xmlfile);
END;


Как результат получаю ошибку:
17:53:47 *** SCRIPT START : Session:SYS@lib(1) 21.12.2004 17:53:47 ***
17:53:47 Start SQL Editor Execution ...
17:53:47 Processing ...
17:54:24 xmlfile BFILE;
17:54:24 *
17:54:24 ORA-03113: принят сигнал конца файла по коммуникационному каналу
17:54:43 *** Script stopped due to error ***
17:54:43 *** SCRIPT END : Session:SYS@lib(1) 21.12.2004 17:54:43 ***
17:54:43 End SQL Editor Execution

P.S.: для конекта использую SQL Navigator 4.4, фиг знает, вдруг пригодиться

Автор: igon 21.12.2004, 20:49
Это у тебя с сервером, похоже, проблемы
Цитата
...If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of Oracle Support Services.


Твоя структура называется не хранимой процедурой, а анонимным блоком.
Хранимая будет выглядеть примерно так

Код

CREATE OR REPLACE Procedure Test As
xmlfile BFILE;

BEGIN
xmlfile := BFILENAME( 'XML', 'docbook.xsd' );
dbms_lob.open(xmlfile);
/*dbms_xmlschema.registerschema
(
schemaurl => 'c:\tmp\docbook.xsd',
schemadoc => xmlfile,
local     => true,
gentypes  => true,
genbean   => false,
gentables => true
);
*/dbms_lob.close(xmlfile);
END;


У меня эта структура компилируется нормально, правда, из-за отсутствия в 9.01 пакета dbms_xmlschema пришлось добавить комментарии

И еще: в операторе
Код
CREATE DIRECTORY xml AS 'c:\tmp';

лучше писать
Код
CREATE Or Replace DIRECTORY xml AS 'c:\tmp';

иначе при повторном запуске будет ругаться, что имя уже используется



Автор: 3,14 22.12.2004, 11:22
А какой из log Файлов надо смотреть? Вроде пробежался по всем, но ничего не нашёл smile

Автор: igon 22.12.2004, 13:06
Хе, здесь я, пожалуй, вряд ли смогу помочь - когда у меня такая ошибка возникала, я показывал ее сисадмину и он там чего-то колдовал. Единственное, что могу сказать - трассировка по умолчанию вроде отключена, так как требует дополнительных ресурсов, и включается по мере надобности.

Посмотри файлы с расширениями .log и .trc с датой изменения соответствующей

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)