Insert Data in a Oracle VAARAY

Hi
I'm trying to insert Data in a Table with an VARRAY Attribute.
Here is my Model:
CREATE OR REPLACE TYPE TelNrTyp AS
ARRAY(10) OF NUMBER(20);
CREATE OR REPLACE TYPE AdresseTyp AS OBJECT
(Strasse VARCHAR2(20), TelNR TelNrTyp);
CREATE OR REPLACE TYPE AngestellterTyp AS OBJECT(
PersNr Integer,
Name VARCHAR2(20),
Adr AdresseTyp);
CREATE TABLE Angestellter OF AngestellterTyp(
PersNr PRIMARY KEY,
Name NOT NULL,
Adr DEFAULT AdresseTyp(NULL,NULL,NULL,NULL)
I have now manuly inserted Data in SQLPlus. This works fine. Then I made a full XML Export from the Data to a File. This also works fine. Next i tried to write XML Data into the Table Model, with the same Format like the Export.
Here is the XML Code:
<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<PERSNR>12348</PERSNR>
<NAME>Tester</NAME>
<ADR>
<STRASSE>Gottfried-K Str.</STRASSE>
<TELNR>
<TELNR_ITEM>111</TELNR_ITEM>
<TELNR_ITEM>222</TELNR_ITEM>
</TELNR>
</ADR>
</ROW>
</ROWSET>
Now following Error appears:
java.lang.reflect.InvocationTargetException: oracle.xml.sql.OracleXMLSQLExceptio
n: 'getArrayVal: Interner Fehler -- '-5 != 2'' bei der Verarbeitung von ROW-Ele
ment 0. Alle fr)zheren XML-Zeilen%Rnderungen wurden zur)zckgesetzt. in XML-Dokume
nt gefunden.
It works, when i remove the TelNr Part in the XML document.
Can somebody help me ?
Best Thanks, Felix

in english...
java.lang.reflect.InvocationTargetException: oracle.xml.sql.OracleXMLSQLExceptio
n: 'getArrayVal: intern Failure-- '-5 != 2'' by Processing ROW-Element 0. Rollback perfomed. - in XML-Document found.
at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2315)
at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2189)
at oracle.xml.sql.dml.OracleXMLSave.insertXML(OracleXMLSave.java:1278)
at Class2.main(Class2.java:33)
at java.lang.reflect.Method.invoke(Native Method)
at com.borland.jbuilder.util.BootStrap.invokeMain(Unknown Source)
at com.borland.jbuilder.util.BootStrap.main(Unknown Source)
null

Similar Messages

  • Insert date time into oracle database from jsp

    pls tell me ,from jsp how can I insert datetime values into oracle database .I am using oracle 9i .here is codethat i have tried
    html--code
    <select name="date">
    <option selected>dd</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    </select>
    <select name="month">
    <option selected>dd</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    </select>
    <select name="year">
    <option selected>dd</option>
    <option>2004</option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    </select>
    here the jsp code
    <% date= request.getParameter("date"); %>
    <% month= request.getParameter("month"); %>
    <% year= request.getParameter("year"); %>
    try
    { Class.forName("oracle.jdbc.driver.OracleDriver"); }
    catch (ClassNotFoundException exception)
    try
         Connection connection = null;
         out.println("connectiong the database");
    connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcsid","scott","tiger");
    out.println("connection getted");
         int rows = 0;
         String query_2 = "insert into mrdetails values(?)";
         String dob = date+month+year;
         prepstat = connection.prepareStatement(query_2);
         prepstat.setTimestamp(4,dob);
         rows = prepstat.executeUpdate();
         out.println("data updated");
    catch (Exception exception3)
    out.println("Exception raised"+exception3.toString());
    }

    To insert date values into a database, you should use java.sql.Date. If it also has a time component, then java.sql.TimeStamp.
    Your use of prepared statements is good.
    You just need to convert the parameters into a date.
    One way to do this is using java.text.SimpleDateFormat.
    int rows = 0;
    String query_2 = "insert into mrdetails values(?)";
    String dob = date+"/" + month+ "/" + year;
    SimpleDateFormat sdf = new SImpleDateFormat("dd/MM/yyyy");
    java.util.Date javaDate = sdf.parse(dob);
    java.sql.Date sqlDate = new java.sql.Date(javaDate .getTime);
    prepstat = connection.prepareStatement(query_2);
    prepstat.setTimestamp(4,sqlDate);
    rows = prepstat.executeUpdate();
    out.println("data updated");Cheers,
    evnafets

  • Problems inserting date values in Oracle 10g

    Hi All,
    I'm having SERIOUS problems trying to insert a simple date value in my oracle.
    I did this one million times before in xMII 11.5, but now it appears that doesn't work anymore!
    Here are some info:
    Data Server Config:
    Date Prefix: TO_DATE('
    Date_Sufix: ', 'MM/DD/YYYY HH24:MI:SS')
    Internal Date Format: yyyy-MM-dd HH:mm:ss
    In my Query Template:
    Date and Time Format: MM/dd/yyyy HH:mm:ss
    In my Transaction
    Parameter: datefromxmlformat(datenow, "MM/dd/yyyy HH:mm:ss")
    I also tried change the parameter to datenow, no success.
    I tried to change the Query Template format, no success.
    Finally, I tried to change my Date prefix & sufix, no success too.
    I really don't know what else I can do. I would appreciate some help.
    PS: I'm using xMII 12.0.1 with ojdbc14.jar
    Thanks in advance.
    Pedro Sena

    Pedro,
    The Data Server config for InternalDateFormat should be:  MM/dd/yyyy HH:mm:ss
    This is because it is used in conjunction with the DatePrefix and DateSuffix whenever you use the DateColumn or  the [SD] and [ED] tokens in a query template.
    If you are inserting a date field with an arbitrary parameter (not a date token like above) then you need to use the TO_DATE wrapper pieces around your date field string.
    The DateFormat in the query template controls the format of the StartDate and EndDate buttons in the applet toolbar if using an iChart/iSPCChart/iGrid and a time sensitive query, but when you build the string for an insert parameter you must manage the whole format yourself.
    If you really just want datenow and the xMII server time is sufficient for your insert query then you can leverage the Data Server config settings like: INSERT INTO TABLE VALUES([ED)
    This way the default query template time settings will use 'now' for the end date of the query and when the string is sent to Oracle it will actually look like:
    INSERT INTO TABLE VALUES(TO_DATE('10/19/2007 08:41:00', 'MM/DD/YYYY HH24:MI:SS'))
    Regards,
    Jeremy

  • Problem while inserting Date/Time in Oracle Database

    Hai,
    i want to insert the date and time in a date column. here, i am using java.sql.Date and java.sql.Time to assign the date in Prepared Statement.
    PreparedStatement psmt=con.prepareStatement("insert into test(ex_date) values(?)");
    java.util.Calendar c=Calendar.getInstance();
    c.set(2002,2,21,10,10,00);
    java.sql.Date d=new Date(c.getTime().getTime());
    java.sql.Time t=new Time(c.getTime().getTime());
    psmt.clearParameters();
    psmt.setDate(1,d);
    psmt.setDate(1,t);
    psmt.executeUpdate();
    Above program is inserted the Date and time in the database as the following "1900/2/21 10:10 AM"
    but i am giving the year as 2002. it inserted the year as 1900. what is the problem with the code?
    please let me know
    Thanks in advance.
    Regards
    sankarjune14

    Hai Franco,
    i put the wrong code. Here, is the Original Code.
    PreparedStatement psmt=con.prepareStatement("insert into test(ex_date) values(?)");
    java.util.Calendar c=Calendar.getInstance();
    c.set(2002,2,21,10,10,00);
    java.sql.Date d=new Date(c.getTime().getTime());
    java.sql.Time t=new Time(c.getTime().getTime());
    psmt.clearParameters();
    psmt.setDate(1,d);
    psmt.setTime(1,t); // Last time i put psmt.setDate(1,t);
    psmt.executeUpdate();
    and, the getTimeInMillis() method is a protected method in java.util.Calendar class. how can we use it
    please give me some other idea to insert the date and time in oracle database.
    Thanks in advance
    sankarjune14

  • How to insert date value into oracle?

    hi,
    iam reading date from xml using vb.net and inserting it into oracle table.
    the date value in xml file is in the format of "01012003".
    i want to insert into oracle table.but iam getting an error "ORA-1843: not a valid month".
    how to solve this problem.
    Any suggestions or examples...

    That's not a date. It's just a string. Convert it to a date using,
    DateTime d = DateTime.ParseExact("01022003", "MMddyyyy", null);
    or
    Dim d As DateTime = DateTime.ParseExact("01022003", "MMddyyyy", Nothing)
    and then bind it to a parameter. ODP.NET will take it from there.
    You should never be hard-coding the date literal into your SQL query.
    David

  • Anyone inserted data directly from Oracle 11g to MySQL?

    Hi There,
    We work mainly on Oracle 11g. However, there is a requirement to now connect to an external MySQL database from our company's Oracle Database. Would be trying to do this for the first time. The process would be to download the data using PL/SQL from the ORacle 11g DB and then insert the data into the MySQL DB table. Had a few questions,
    1. Are there any known issues with connections between ORacle as source and MySQL as target. Anything that needs to be kept in mind?
    2. How do we send the data to MySQL, I mean in PL/SQL we can have the procedure create the insert statements. But can we directly fire the insert on MySQL ? If yes, any suggestions on what the commands would be?
    3.Any way to figure out if the insert was successful?
    4. We might also have to do other operations like update/delete etc.
    5. Any possible reference or sample code on this would also help.
    Thanks

    Well, the simplest and most direct approach would be to create a java function in the database to perform the operation and call it from pl/sql. I've done it before and there are examples out there and its a pretty straight-forward process.
    A quick example from [this website|http://w2.syronex.com/jmr/edu/db/oracle-and-java]
    import java.io.*;
    import java.sql.*;
    public class OraThin {
      public static void main(String[] args) {
        try {
          Connection con=null;
          Class.forName("oracle.jdbc.driver.OracleDriver");
          con=DriverManager.getConnection(
            "jdbc:oracle:thin:@machine_name:1521:database_name",
            "scott",
            "tiger");
          Statement s=con.createStatement();
          s.execute("
            INSERT INTO BOOKS VALUES
            'A Tale of Two Cities',
            'William Shakespeare',
            4567891231,
            '5-JAN-1962'
          s.close();
          con.close();
       } catch(Exception e){e.printStackTrace();}
    }Check out Oracle's Java tutorial at http://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html for more in-depth information.
    If you're going to be doing this for more than a handful of tables under very controlled circumstances keeping it synchronized is going to be a mess, however.
    Edited by: Bill Haverberg on Jun 20, 2012 8:05 AM

  • How to read a CSV file and Insert data into an Oracle Table

    Hi All,
    I have a Clob file as a in parameter in my PROC. . File is comma separated.need procedure that would parse this CLOB variable and populate in oracle table .
    Please let me some suggestions on this.
    Thanks,
    Chandra R

    jeneesh wrote:
    And, please don't "hijack" 5 year old thread..Better start a new one..I've just split it off to a thread of it's own. ;)
    @OP,
    I have a Clob file as a in parameter in my PROC. . File is comma separated.need procedure that would parse this CLOB variable and populate in oracle table .You don't have a "clob file" as there's no such thing. CLOB is a datatype for storing large character based objects. A file is something on the operating system's filesystem.
    So, why have you stored comma seperated data in a CLOB?
    Where did this data come from? If it came from a file, why didn't you use SQL*Loader or, even better, External Tables to read and parse the data into structured format when populating the database with it?
    If you really do have to parse a CLOB of data to pull out the comma seperated values, then you're going to have to write something yourself to do that, reading "lines" by looking for the newline character(s), and then breaking up the "lines" into the component data by looking for commas within it, using normal string functions such as INSTR and SUBSTR or, if necessary, REGEXP_INSTR and REGEXP_SUBSTR. If you have string data that contains commas but uses double quotes around the string, then you'll also have the added complexity of ignoring commas within such string data.
    Like I say... it's much easier with SQL*Loader of External Tables as these are designed to parse such CSV type data.

  • Connection string to insert data to Oracle DB

    Hay guys,
    Now I am facing the problem to insert data to the oracle db. I already connect the db to my netbeans service tag & also found the db & tables. But does not know how to insert, delete etc from my JSF pages. I send my JSF code. You guys tell me in which position in the code I will set the connection string, as well as the pattern of connection string. You guys found that I add a button name "show". I want that when I press the "show" button then the relative data will show in the corresponding textfield. I would like to mention that my database server ip is "192.168.56.2". And my netbeans installed pc's ip is "192.168.56.1". My oracle SID is "orcl", user name: "Asystem", Password: "abc123", and the table I want to access is "user_info". Please guys help me.....
    THE CODE OF MY JSF PAGE IS TO:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Document : Page1
    Created on : Feb 15, 2010, 10:33:41 PM
    Author : Taibur
    -->
    <jsp:root version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:webuijsf="http://www.sun.com/webui/webuijsf">
    <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
    <f:view>
    <webuijsf:page id="page1">
    <webuijsf:html id="html1">
    <webuijsf:head id="head1">
    <webuijsf:link id="link1" url="/resources/stylesheet.css"/>
    </webuijsf:head>
    <webuijsf:body id="body1" style="-rave-layout: grid">
    <webuijsf:form id="form1">
    <webuijsf:textField id="textField1" style="left: 168px; top: 72px; position: absolute"/>
    <webuijsf:button actionExpression="#{Page1.button1_action}" id="button1"
    style="left: 239px; top: 264px; position: absolute; width: 96px" text="Show"/>
    <webuijsf:textField id="textField2" style="left: 168px; top: 96px; position: absolute"/>
    <webuijsf:textField id="textField6" style="left: 168px; top: 192px; position: absolute"/>
    <webuijsf:textField id="textField3" style="left: 168px; top: 120px; position: absolute"/>
    <webuijsf:textField id="textField4" style="left: 168px; top: 144px; position: absolute"/>
    <webuijsf:textField id="textField5" style="left: 168px; top: 168px; position: absolute"/>
    <webuijsf:textField id="textField7" style="left: 168px; top: 216px; position: absolute"/>
    </webuijsf:form>
    </webuijsf:body>
    </webuijsf:html>
    </webuijsf:page>
    </f:view>
    </jsp:root>

    im not sure if you can make a query directly from your jsf,
    but its a better practice to do that in your backing bean

  • Inserting data from Oracle to SQL Server 2008

    Hi All,
    I am using oracle 9.2.0.7 and SQL server 2008 in windows server 2003 operating system.
    My requirment is like below.
    1) I would liek to insert data from the Oracle database to SQL Server.
    For the above requirement we have created the ODBC, then configure the listener file, tns file, and created the db link. This part is working fine as I am able to select the data from the SQL Server.
    But when I am inserting the record from the oracle database to the SQL Server I am getting the error, (ORA-00904) Here oracle can not identified the column name.
    My insert statement is like below.
    insert into test@SQLTEST (name, fullname)
    values ('Oracle', 'Oracle server data');
    Test is the SQL server table name and sqltest is the db link name.
    If I am select the data
    select * from test@SQLTEST from Oralce I am getting the data properly.
    Thanks,
    SUN
    Edited by: User SUN@ on Jun 9, 2010 5:49 PM

    Hi,
    I modify the column name as "f_name" and "l_name";
    Still I am getting the same error;
    Thanks,
    SUN

  • How to insert data type information to oracle database

    Hi, there,
    I want to insert date information to oracle database in a jsp page using JSTL. but always got wrong message:
    javax.servlet.jsp.JspException:
    INSERT INTO DATE_TEST
    (date_default,date_short,date_medium)
    values(?,?,?)
    : Invalid column type
    I don't know how to convert java date type to oracle date type or vice versa. the following is the source code(all the fields of DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM are oracle date type. and even I want to insert d instead d1, I got the same wrong message)
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.util.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
    <%
    Calendar now;
    Calendar rightNow = Calendar.getInstance();
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>
    Hello World
    </title>
    </head>
    <body>
    <h2>
    The current time is:
    </h2>
    <p>
    <%= new java.util.Date() %></p>
    <%
    java.util.Date d=new java.util.Date();
    java.sql.Date d1=new java.sql.Date(d.getYear(),d.getMonth(),d.getDate());
    out.print(d1.toString());
    %>
    <sql:update>
    INSERT INTO DATE_TEST
    (DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM)
    VALUES(?,?,?)
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    </sql:update>
    </body>
    </html>
    thank you very much for the great help!!

    I don't have time to read thru all your code, but I hope this information will help you.
    It depends on how the Oracle database was set up. Usually, the date format is something like this: '27-MAY-2003 22:10:00'. A quick check will be to run this SQL script in SQLPlus:
    select sysdate from dual;
    You have to convert the date from textbox or whatever to this exact Oracle format. Otherwise, Oracle will not accept it. It is very picky on that. I found the best way is to do the conversion inside the SQL statement. It makes life so much easier.
    Hope this helps.

  • How to insert date into oracle database

    Hi, there,
    I want to insert date information to oracle database in a jsp page using JSTL. but always got wrong message:
    javax.servlet.jsp.JspException:
    INSERT INTO DATE_TEST
    (date_default,date_short,date_medium)
    values(?,?,?)
    : Invalid column type
    I don't know how to convert java date type to oracle date type or vice versa. the following is the source code(all the fields of DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM are oracle date type. and even I want to insert d instead d1, I got the same wrong message)
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.util.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
    <%
    Calendar now;
    Calendar rightNow = Calendar.getInstance();
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>
    Hello World
    </title>
    </head>
    <body>
    <h2>
    The current time is:
    </h2>
    <p>
    <%= new java.util.Date() %></p>
    <%
    java.util.Date d=new java.util.Date();
    java.sql.Date d1=new java.sql.Date(d.getYear(),d.getMonth(),d.getDate());
    out.print(d1.toString());
    %>
    <sql:update>
    INSERT INTO DATE_TEST
    (DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM)
    VALUES(?,?,?)
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    </sql:update>
    </body>
    </html>
    thank you very much for the great help!!

    Hi, there,
    I want to insert date information to oracle database in a jsp page using JSTL. but always got wrong message:
    javax.servlet.jsp.JspException:
    INSERT INTO DATE_TEST
    (date_default,date_short,date_medium)
    values(?,?,?)
    : Invalid column type
    I don't know how to convert java date type to oracle date type or vice versa. the following is the source code(all the fields of DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM are oracle date type. and even I want to insert d instead d1, I got the same wrong message)
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="java.util.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
    <%
    Calendar now;
    Calendar rightNow = Calendar.getInstance();
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>
    Hello World
    </title>
    </head>
    <body>
    <h2>
    The current time is:
    </h2>
    <p>
    <%= new java.util.Date() %></p>
    <%
    java.util.Date d=new java.util.Date();
    java.sql.Date d1=new java.sql.Date(d.getYear(),d.getMonth(),d.getDate());
    out.print(d1.toString());
    %>
    <sql:update>
    INSERT INTO DATE_TEST
    (DATE_DEFAULT,DATE_SHORT,DATE_MEDIUM)
    VALUES(?,?,?)
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    <sql:dateParam value="${d}" type="date" />
    </sql:update>
    </body>
    </html>
    thank you very much for the great help!!

  • Insert data into msql thru table trigger

    Hi,
    I installed dg4msql 11.2 and I would like to insert some data into our msql thru one of our Oracle table after insert table,
    I used the syntax below
    insert into test@dg4msql ("PN") values (:new.PN)
    but the below error problem if I insert data into my Oracle table,
    ORA-02054: transaction 4.17.15898 in-doubt
    ORA-028500, connect from ORACLE to a non-Oracle system returned this message
    [Oracle][ODBC SQL Server Driver][SQL Server] Invalid object name "RECOVER.HS_TRANSACTION_LOG
    Do I have to create the HS_TRANSACTION_LOG table in my msql server to resolve this problem?
    Thanks
    Vincent

    Vincent,
    If the gateway insert is being done as part of a trigger then it will almost certainly be part of a distributed transaction so yes, you will have to create the transaction log table and the recovery user in the SQL*Server database.
    As well as the gateway documentation have a look at this note in My Oracle Support -
    Note.227011.1 How to Setup DG4MSQL to Use Distributed Transactions          (Doc ID 227011.1)
    Regards,
    Mike

  • Error while insert data using execute immediate in dynamic table in oracle

    Error while insert data using execute immediate in dynamic table created in oracle 11g .
    first the dynamic nested table (op_sample) was created using the executed immediate...
    object is
    CREATE OR REPLACE TYPE ASI.sub_mark AS OBJECT (
    mark1 number,
    mark2 number
    t_sub_mark is a class of type sub_mark
    CREATE OR REPLACE TYPE ASI.t_sub_mark is table of sub_mark;
    create table sam1(id number,name varchar2(30));
    nested table is created below:
    begin
    EXECUTE IMMEDIATE ' create table '||op_sample||'
    (id number,name varchar2(30),subject_obj t_sub_mark) nested table subject_obj store as nest_tab return as value';
    end;
    now data from sam1 table and object (subject_obj) are inserted into the dynamic table
    declare
    subject_obj t_sub_mark;
    begin
    subject_obj:= t_sub_mark();
    EXECUTE IMMEDIATE 'insert into op_sample (select id,name,subject_obj from sam1) ';
    end;
    and got the below error:
    ORA-00904: "SUBJECT_OBJ": invalid identifier
    ORA-06512: at line 7
    then when we tried to insert the data into the dynam_table with the subject_marks object as null,we received the following error..
    execute immediate 'insert into '||dynam_table ||'
    (SELECT

    887684 wrote:
    ORA-00904: "SUBJECT_OBJ": invalid identifier
    ORA-06512: at line 7The problem is that your variable subject_obj is not in scope inside the dynamic SQL you are building. The SQL engine does not know your PL/SQL variable, so it tries to find a column named SUBJECT_OBJ in your SAM1 table.
    If you need to use dynamic SQL for this, then you must bind the variable. Something like this:
    EXECUTE IMMEDIATE 'insert into op_sample (select id,name,:bind_subject_obj from sam1) ' USING subject_obj;Alternatively you might figure out to use static SQL rather than dynamic SQL (if possible for your project.) In static SQL the PL/SQL engine binds the variables for you automatically.

  • Insert data 32K into a column of type LONG using the oracle server side jdbc driver

    Hi,
    I need to insert data of more than 32k into a
    column of type LONG.
    I use the following code:
    String s = "larger then 32K";
    PreparedStatement pstmt = dbcon.prepareStatement(
    "INSERT INTO TEST (LO) VALUES (?)");
    pstmt.setCharacterStream(1, new StringReader(s), s.length());
    pstmt.executeUpdate();
    dbcon.commit();
    If I use the "standard" oracle thin client driver from classes_12.zip ("jdbc:oracle:thin:@kn7:1521:kn7a") every thing is working fine. But if I use the oracle server side jdbc driver ("jdbc:default:connection:") I get the exception java.sql.SQLException:
    Datasize larger then max. datasize for this type: oracle.jdbc.kprb.KprbDBStatement@50f4f46c
    even if the string s exceeds a length of 32767 bytes.
    I'm afraid it has something to do with the 32K limitation in PL/SQL but in fact we do not use any PL/SQL code in this case.
    What can we do? Using LOB's is not an option because we have client software written in 3rd party 4gl language that is unable to handle LOB's.
    Any idea would be appreciated.
    Thomas Stiegler
    null

    In rdbms 8.1.7 "relnotes" folder, there is a "Readme_JDBC.txt" file (on win nt) stating
    Known Problems/Limitations In This Release
    <entries 1 through 3 omiited for brevity >
    4. The Server-side Internal Driver has the following limitation:
    - Data access for LONG and LONG RAW types is limited to 32K of
    data.

  • How to Insert data from an XML file into an Oracle 10g table

    Hello,
    Please can you help me as I have hit a brick wall with this problem.
    We are running version 10g Oracle and we will start receiving XML files with employee data that needs loading into a table, this is the XML file:
    <?xml version="1.0"?>
    <RECRUITS>
    <RECRUIT>
    <FIRST_NAME>Gordon</FIRST_NAME>
    <LAST_NAME>Brown</LAST_NAME>
    <SHORT_NAME>GORDONBROWN</SHORT_NAME>
    <APP_NO>00002</APP_NO>
    <STATUS>M</STATUS>
    <DATE_FROM>21-JUL-2006</DATE_FROM>
    <RESOURCE_TYPE>P</RESOURCE_TYPE>
    <TITLE>Mr</TITLE>
    <DATE_OF_BIRTH>28-DEC-1983</DATE_OF_BIRTH>
    <SOCIAL_SEC>AB128456A</SOCIAL_SEC>
    <PARTTIME_PCT>1</PARTTIME_PCT>
    <SEX>M</SEX>
    <ADDRESS_TYPE>1</ADDRESS_TYPE>
    <ADDRESS>A HOUSE SOMEWHERE HERE</ADDRESS>
    <ZIP_CODE>PE3 LLL</ZIP_CODE>
    <PLACE>BOROUGH</PLACE>
    <COUNTRY_CODE>UK</COUNTRY_CODE>
    <PROVINCE>UK</PROVINCE>
    <EMAIL>[email protected]</EMAIL>
    </RECRUIT>
    (FYI - there may be more than 1 employee in each file so all of the above will be repeated X amount of times)
    </RECRUITS>
    To make things simple we have created a table which mirrors the XML file completely to load the data into, the SQL i have used is thus:
    CREATE TABLE RECRUITMENT
    FIRST_NAME VARCHAR2(30),
    LAST_NAME VARCHAR2(30),
    SHORT_NAME VARCHAR2(30),
    APP_NO NUMBER,
    STATUS VARCHAR2(1),
    DATE_FROM DATE,
    RESOURCE_TYPE VARCHAR2(1),
    TITLE VARCHAR2(4),
    DATE_OF_BIRTH DATE,
    SOCIAL_SEC VARCHAR2(9),
    PARTTIME_PCT NUMBER,
    SEX VARCHAR2(1),
    ADDRESS_TYPE VARCHAR2(1),
    ADDRESS VARCHAR2(30),
    ZIP_CODE VARCHAR2(8),
    PLACE VARCHAR2(10),
    PROVINCE VARCHAR2(3),
    EMAIL VARCHAR2(20)
    Every method we try from the numerous documents and so called "user guides" have failed, please can somebody show me the PL/SQL i need to get this files data into the above table?
    We need to be able to do this purely through SQL*PLUS as we hope - if we ever get it working manually to create a procuedure that will encapsulate everything so it can be run over and over again.
    The XML file is sitting in the XMLDIR and is called REC.XML.
    Please help : (

    Hi, I have got some material for inserting data into oracle table from xml file, this might help you.
    Create XML Document Table
    create table XML_DOCUMENT_TABLE
    FILENAME varchar2(64),
    XML_DOCUMENT XMLTYPE
    (This will be as per your record details).
    Inserting record to Oracle Table
    declare
    XML_TEXT CLOB := '<smsnotification>
                   <messageid> 256427844 </messageid>
              <protocolid> CO0NPS2KHQ </protocolid>
              <notifiedon> 1156123007416 </notifiedon>
              <status> 3PBI: Invalid </status>
    <additionalinfo> Customer account not active </additionalinfo>
    <carrierid> 1175 </carrierid>
    </smsnotification>';
    begin
    insert into XML_DOCUMENT_TABLE values ('Receipt.xml',XMLTYPE(XML_TEXT));
    end;
    Select Statement
    select extractValue(XML_DOCUMENT,'/smsnotification/messageid') Messageid,
    extractValue(XML_DOCUMENT,'/smsnotification/status') Status,
    extractValue(XML_DOCUMENT,'/smsnotification/carrierid') CarrierID
    from XML_DOCUMENT_TABLE;

Maybe you are looking for