SQL*Loader error 350 using SDO_RDF_TRIPLE_S constructor
437959Oct 18 2006 — edited Oct 19 2006Greetings,
10g2 on Windows XP
tablespace and RDF network created successfully
model and table created successfully
but sqlldr throws error
SQL> create table mt_1(id number, triple SDO_RDF_TRIPLE_S);
Table created.
SQL> EXECUTE SDO_RDF.CREATE_RDF_MODEL('test_model', 'mt_1', 'triple');
PL/SQL procedure successfully completed
LOAD DATA
INFILE 'mt_data.txt' BADFILE 'mt_data.bad'
APPEND
INTO TABLE mt_1
(
id SEQUENCE(MAX,1),
triple COLUMN OBJECT
(
SDO_RDF_TRIPLE_S
(
'test_model',
CHAR TERMINATED BY WHITESPACE,
CHAR TERMINATED BY WHITESPACE,
CHAR TERMINATED BY '.'
)
)
)
SQL*Loader: Release 10.2.0.1.0 - Production on Thu Oct 12 09:26:17 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL*Loader-350: Syntax error at line 10.
Expecting valid column specification, "," or ")", found "(".
(
^
I can load the flat file into a staging table with 3 cols of varchar2(4000) using the same CHAR TERMINATED BY .. syntax for each col individually. Then using a PL/SQL procedure that constructs the SDO_RDF_TRIPLE_S objects I can load the triple table mt_1 successfully from the staging table.
I would like to do this in one step with sqlldr but it fails when I use the constructor, but I see example of loading a COLUMN OBJECT using a constructor (not SDO_RDF_TRIPLE_S however) here
http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14255/sdo_objload.htm#sthref260
I have looked without success for threads that address this situation on the Spatial forum and on asktom.
I have seen the documentation for using Java API or SQL inserts to load triples.
I have also seen high level documentation from Oracle about using SQL Loader to batch load N-Triples, but no examples of control file syntax for loading from a flat file.
Any ideas?
Thanks,
Peter