Inserting Null character through C into Oracle

Hello,
I am reading data through pro C program from a file which contains null characters.
I am fetching data into character buffer but when I try to insert the buf into Oracle of table it is inserting all the charaters before that null character and the remaining characters after the null characters will be truncated.
So kindly help me how to handle null character ion Pro C and insert the entire characters string which contains null characters in Varchar field.
Thanks,
Ananth
null

Please check the pro C/C++ developers guide.

Similar Messages

  • Upload excel sheet data through sqlloader into oracle tables

    hi everyone,
    i am working with excel sheet with following records
    8501      Jacob Marshall      15000      21/10/2009      Finance
    8502      Chris Campell      50000      13/06/2008      R&D
    8503      Simon Dough      50000      3/07/2008      Engineering
    8504      Mark Haggai      75000      9/3/2006      Product Management
    8505      Verica Beverley      45000      7/2/2008      HR
    and i saved it in emp_details.csv
    after that when i write following code to make control file
    load data
    infile 'C:\Documents and Settings\prashant_dabral\Desktop\a.txt'
    into table tmp
    field terminated by','optionally enclosed by" "
    (emp_no,emp_name,salary,doj,dept_name)
    after this pl\sqldev returning me error message that ORA-00900:invalid sql statement
    can anybody tell me how to resolve issue
    or
    another method to Upload excel sheet data through sqlloader into oracle tables

    A control file is a file located on the operating system, not some SQL or PL/SQL code you try and execute.
    Create the control file as a file and then use that to load your data with SQL*Loader from the command line.
    http://www.morganslibrary.org/reference/sqlloader.html
    Or better still, create it as an external table and then you don't need a seperate control file or need to use sql loader from the command line...
    http://www.morganslibrary.org/reference/externaltab.html

  • How to insert Serialised Object(XML DOM) into Oracle Table(as BLOB or CLOB)

    we need a urgent help. How can we insert and retrieve the XML Document DOM Object into Oracle Table.Actually we used BLOB for insert the DOM Object,its inserted finely but we have a problem in retrieving that object, we got error when v're retrieving. so could you anyone tell us what's this exact problem and how can we reslove this problem If anyone knows or used this kind operation, pls let us know immediately.
    Thanks in advance.

    Please repost your question in the appropriate XML forum, http://forums.oracle.com/forums/index.jsp?cat=51

  • Insert current date and time into Oracle date type field

    I have a JDBC current date and time insert into Oracle 9i that almost works. It submits the current date and a fixed time into the Oracle date type field. I am using Tomcat 6.0.20.
    For example if I insert the data at 7:24:04 PM on Feb 16, 2010 it will insert as: 16-Feb-2010 12:00:00 AM
    The date part works but the time always shows 12:00:00 AM no matter what date or time the data is inserted.
    Here is what I have for my JDBC inserts and I also tried something with DateFormat:
    PreparedStatement ps; Date mydate = new Date(new java.util.Date().getTime()); //insert statement here.... stmt.setDate(1,mydate);
    I also tried:
    PreparedStatement ps; java.sql.Timestamp mydate = new java.sql.Timestamp(new java.util.Date().getTime()); SimpleDateFormat fmt = new SimpleDateFormat(.... //insert statement here.... ps.setTimestamp(1,fmt.format(mydate));
    Both keep submitting the date into Oracle as 16-Feb-2010 12:00:00 AM
    Anyway to get the current date and time? For example if I insert the data at 7:24.04 pm today it should show as 16-Feb-2010 07:24.04 PM in Oracle.

    sportsMarkr wrote:
    Date mydate = new Date(new java.util.Date().getTime());Please see the javadocs for java.sql.Date and note the part that says "...to zero"
    [http://java.sun.com/javase/6/docs/api/java/sql/Date.html]
    If you want a date and time then use java.sql.Timestamp.

  • Insert statement with Date, time into Oracle

    Hi,
    I've got the following statement that I'm trying to insert into Oracle. Actually had to change up the format to dd-mm-yy to get it to insert the date correctly, not sure why, but I've got it "supposedly" formatted to also insert the hours, min., seconds into the db record, but it's not catching it.
    My code:
    INSERT INTO VOTETBL
    (CHANGE_CTRL_ID,BUSVP,BRANCH,VOTE,VOTE_TIMESTAMP)
    VALUES (?, ?,?,?,to_date(sysdate, 'dd-mm-yy hh24:mi:ss'));Shouldn't the sysdate capture all those elements sufficiently? The day, month, year get inserted correctly with this, but not so for the time portion.
    Any suggestions is welcomed.
    Thx.

    ok, thanks.
    I tried making a result set with the following:
    Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    ResultSet rst = stmt.executeQuery("select to_char(sysdate) from dual");
    Date dualtimestamp = (rst.getDate("sysdate"));But it makes the servlet blow up! Not sure why either, because if I enter that exact statement in Oracle, it pulls back the date and time just like I aim to. But not embedded in the result set statement within the servlet.
    It breaks up somehow and doesn't get that result!

  • Inserting a record through XML into the tbale

    Hi,
    When i insert a record into a table through XML data which is through CLOB,
    the data gets inserted and when i commit the ransaaction and check in my table, the data gets inserted for only few feilds and the remaining feilds will be blank , though the value in the field is inserted through XML.
    please get back to me at the earliest.

    are you sure you can see the hole content?
    increase the maximum width for displaying CLOB:
    SQL> desc test
    Name Null? Typ
    DATA CLOB
    SQL> insert into test values ('<EMPS><EMPLOYEE_ID>200</EMPLOYEE_ID>
    2 <FIRST_NAME>Jennifer</FIRST_NAME>
    3 <LAST_NAME>Whalen</LAST_NAME>
    4 <EMAIL>JWHALEN</EMAIL>
    5 <PHONE_NUMBER>515.123.4444</PHONE_NUMBER>
    6 <HIRE_DATE>17-SEP-87</HIRE_DATE>
    7 <JOB_ID>AD_ASST</JOB_ID>
    8 <SALARY>4400</SALARY>
    9 <MANAGER_ID>101</MANAGER_ID>
    10 <DEPARTMENT_ID>10</DEPARTMENT_ID></EMPS');
    1 row created
    SQL> select * from test;
    DATA
    <EMPS><EMPLOYEE_ID>200</EMPLOYEE_ID>
    <FIRST_NAME
    SQL> set long 500
    SQL> select * from test;
    DATA
    <EMPS><EMPLOYEE_ID>200</EMPLOYEE_ID>
    <FIRST_NAME>Jennifer</FIRST_NAME>
    <LAST_NAME>Whalen</LAST_NAME>
    <EMAIL>JWHALEN</EMAIL>
    <PHONE_NUMBER>515.123.4444</PHONE_NUMBER>
    <HIRE_DATE>17-SEP-87</HIRE_DATE>
    <JOB_ID>AD_ASST</JOB_ID>
    <SALARY>4400</SALARY>
    <MANAGER_ID>101</MANAGER_ID>
    <DEPARTMENT_ID>10</DEPARTMENT_ID></EMPS
    SQL>

  • How to insert date value through xml in oracle

    hi,  I am inserting data using xml string. Everything is working perfect but it shows error when i try to insert data into a table with date coloumn. it shows unparsable date error.... I am using this format of date 1-jan-2011
    my prcedure and java method is as follows...
    CREATE OR REPLACE procedure app_data.Insert_callrepHeader(xmlDoc in CLOB,t_id out varchar2,flag out varchar2) is
    insCtx DBMS_XMLSave.ctxType;
    rows number;
    t_tablename VARCHAR2(300);
    t_seqval varchar2(100);
    begin
    t_tablename:='T_CALLREPORT_HDR';
    insCtx := DBMS_XMLSave.newContext(t_tablename);
    rows := DBMS_XMLSave.insertXML(insCtx,xmlDoc);
    dbms_output.put_line(to_char(rows) || ' rows inserted');
    DBMS_XMLSave.closeContext(insCtx);
    select SEQ_T_CALLREPORT_HDR.currval into t_seqval from dual;
    dbms_output.put_line(to_char(t_seqval) || ' is the current sequence number');
    end;
    public void insertAll(String[][] dbTblFieldValues) throws Exception
    Connection conn=null;
    conn=getOracleConnection();
    try
    String str="<ROWSET>"+
    "<ROW>"+
    "<PROCESSNAME>sheet</PROCESSNAME>"+
    "<FK_EMPID>1</FK_EMPID>"+
    "<FK_JRNY_PLAN_HDR_ID>278</FK_JRNY_PLAN_HDR_ID>"+
    "<FK_DIVISIONID>3</FK_DIVISIONID>"+
    "<STARTDATE>7-may-2011</STARTDATE>"+ what should be the format of this date????_+
    "<COMMENTSFORWEEK>comment</COMMENTSFORWEEK>"+
    "<SAPCODE>mysapcode300</SAPCODE>"+
    "<WEEKNO>1</WEEKNO>"+
    "<TOTALEXPENSE>800</TOTALEXPENSE>"+
    "<VENDORINVOICETYPE>mytype</VENDORINVOICETYPE>"+
    "<REPORTNO>1</REPORTNO>"+
    "<SUBPROCESSID>800</SUBPROCESSID>"+
    "</ROW>"+
    "</ROWSET>";
    StringBuffer sb = new StringBuffer(400000);
    sb.append(str);
    String clobValue = sb.toString();
    PreparedStatement preparedStatement=conn.prepareStatement("{call INSERT_CALLREPHEADER (?,?,?)}");
    preparedStatement.setString(1, clobValue);
    preparedStatement.setString(2,null );
    preparedStatement.setString(3,null );
    preparedStatement.execute();
    preparedStatement.close();
    conn.close();
    catch (Exception e) {
    // System.out.println(e.getMessage());
    e.printStackTrace();
    }

    I have got the answer...
    use DBMS_XMLSave.setdateformat(insCtx, 'dd-MM-yyyy'); and u can change ur date format....

  • Putting a null character in a String?

    Hi,
    I need to send a null character through a nio channel. Specifically, it needs to be decoded from a String into a byte array. Can I append a null character to a String so that getBytes() method will return it? Thanks,
    ranko

    Thanks, I tried that but it doesn't work. I also
    tried appending '\0' and an uninitialized character
    which should by default have a value of a null
    character. I tried creating a String out of a char
    array that has one element containing a null character
    but that did not work either. I guess that since null
    characters end the String, you cannot actually add
    them to the body of the String. Or is there a way?FYI, strings aren't null-terminated in Java.

  • How to insert data into Oracle db from MySQL db through PHP?

    Hi,
    I want to insert my MySQL data into Oracle database through PHP.
    I can access Mysql database using mysql_conect() & Oracle database using oci_connect() through PHP.
    Now How can I insert my data which is in MySQL into Oracle table. Both table structure are exactly same.
    So I can use
    insert into Oracle_Table(Oracle_columns....) values(Select * from MySQL_Table);
    But again problem is I can't open both connections at the same time.
    So has anyone done this before or anyone having any other idea..
    Plz guide me...

    You can do it if you setup a ODBC Gateway between MYSQL and Oracle DB. Then you can directly read from MySQL table using DB links and insert into Oracle table in one single SQL Statement.
    Otherwise you need to fetch the data from MySQL Into variables in your PHP Program and then insert into Oracle after binding the variables to the insert statement for Oracle. Hope that is clear enough.
    Regards
    Prakash

  • Insert new row into oracle databse through application module usng ADF Form

    I am using Jdeveloper 11.1.2. I am a beginner. I had tried in-built createInsert and commit method to add new row into oracle DB. For that, I had created ViewObject, VOImpl and AMImpl. Then, I created to jsf page. On first page, I dragged and dropped createInsert fn and VO(as ADF-readonly table) from DC Palette. and on second page, I dragged and dropped my VO(as ADF-Form) and commit (as Button) from DC palette. I created task-flow for it. when i click on createInsert button, i redirected to second page. where i filled all the required information on form. After filling, when i clicked commit button, i redirected to first page.(coz i created task flow to return first page after commit). New row is inserted into ADF-table, but when i checked my oracle DB, there was nothing added.
    Thus, I want to use custom method to insert row into OracleDB. So how can i get this? what are the steps required to do this? what programming codes required in Bean.java and AMImpl.java. Or is there any other steps to do this?
    please provide me detail steps and programming code for bean, amimpl or for VOImpl or EOImpl.
    please help me.

    User,
    To insert a row into the db you have to use a VO which is based on an EO (entity object). There is no java class (or impl) needed. You can all do this decoratively.
    All you have to think of is the PK of the new row. You can use Groovy for that (http://tompeez.wordpress.com/2011/09/02/using-groovy-expression-to-set-a-primary-key-with-a-sequence-number/)
    The rest is like you described it yourself. Drag the Vo onto the page, drop it as read only table, drag the createInsert onto the page as button and set up the navigation. On the second page drag the same VO onto the page and drop it as ADF Form. drag the commit operation onto the page as button and setup the navigation back to the first page.
    Timo

  • Issue inserting UTF8 data into Oracle in windows environment.

    I have a UTF8 PHP application that is writing a string containing special characters to oracle through a ODBC connection. The Oracle database is setup for UTF8 support.
    Here is the issue. I have a simple string, "louis de funès". When the data manually moved correctly in UTF8 the data comes up correctly. The Oracle dump() shows:
    WORKING DATA:
    String: louis de funès
    select keywords, dump(keywords, 17) from ame_links where keywords like '%louis de %';
    Typ=1 Len=15: l,o,u,i,s, ,d,e, ,f,u,n,c3,a8,s
    However, when the same string is Inserted through the PHP application the data shows up in the db like this.
    NOT - WORKING:
    String: louis de funès
    select keywords, dump(keywords, 17) from ame_links where keywords like '%louis de %';
    Typ=1 Len=17: l,o,u,i,s, ,d,e, ,f,u,n,c3,83,c2,a8,
    (The è character has 4 bytes associated with it)
    Windows Setup:
    Windows Registry: HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOME0 ->
    NLS_LANG=AMERICAN_AMERICA.UTF8
    HTTP headers are set for Content-Type:text/html; charset=UTF-8.
    Anyone know why I would get 2 extra bytes (83,c2) added in the middle of the è character? Is the oracle client doing some other type of character set conversion before I insert it into the database.
    I have also noticed that when I change the NLS_LANG from AMERICAN_AMERICA.UTF8 to AMERICAN_AMERICA.WE8MSWIN1252 that the 4 byte 'è' character works and the 2 byte character doesn't.

    I reproduced the porblem. Only differnce from yours is that it reproduces regardless the NLS_LANG setting.
    Although I cannot be 100% sure, I think what is happening is that Microsoft ODBC Driver Manager converts the insert statement from Windows ACP to Unicode, then calls SQLExecDirectW (WideChar version of SQLExecDirect) of the Oracle ODBC Driver and passes the insert statement in Unicode. Since your PHP code passed the insert statement in UTF-8 encoding, and the Driver Manager converted it from Windows ACP to Unicode, the letter e with grave ("c3,a8" in UTF-8) was wrongly converted to U+00c3, U+00a8 in the Unicode insert statement, then converted to UTF8 ( "c3,83,c2,a8") by Oracle.
    By looking at the PHP source code, apparently PHP odbc_exec() function calls ANSI SQLExecDirect().
    I tried to verify that the Driver Manager calls SQLExecDirectW() of Oracle ODBC Driver by enabling the ODBC Tracing, but I couldn't make it work. It genetates an emply SQL.LOG file. So my investigation stops here.
    IF YOUR METADATA NAMES ARE ASCII ONLY, AND NON-ASCII CHARACTERS APPEAR ONLY IN DATA, you can workaround this problem by binding data. For example,
    $stmt = odbc_prepare($conn, "insert into AME_LINKS (keywords, site_id) values (?, ?)");
    $rs = odbc_execute($stmt, array($invar,77));
    Makoto

  • Migration Error - Cannot Insert Null Into MD_PROJECTS.ID

    Environment:
    Oracle 11g (11.2.0.2)
    SQL Server 2008 R2
    SQL Developer 3.0.03 Build Main-03.97
    Problem:
    We are migrating a SQL Server DB to Oracle and will need to perform this repeated times using updated versions of the SQL Server DB. I successfully did this several days ago using OFFLINE mode using a DB received in late March. There are two schemas in the SQL Server DB (dbo and EXA) that need to get migrated. Within SQL Server I attached the DB and renamed it to PTS. I then went through the wizard and ended up with two schemas in Oracle (dbo_PTS and EXA_PTS). I am now trying to repeat the process with a DB I just received. Within SQL Server I attached the DB and renamed it to PTS_April. It also has the same two schemas (dbo and EXA).
    My repository schema (MWREP) has the following permissions:
    GRANT RESOURCE TO MWREP WITH ADMIN OPTION;
    GRANT DBA TO MWREP;
    GRANT CONNECT TO MWREP;
    ALTER USER MWREP DEFAULT ROLE ALL;
    -- 6 System Privileges for MWREP
    GRANT UNLIMITED TABLESPACE TO MWREP WITH ADMIN OPTION;
    GRANT CREATE SESSION TO MWREP;
    GRANT CREATE ROLE TO MWREP WITH ADMIN OPTION;
    GRANT ALTER ANY TRIGGER TO MWREP WITH ADMIN OPTION;
    GRANT CREATE USER TO MWREP WITH ADMIN OPTION;
    GRANT CREATE VIEW TO MWREP;
    I step through the wizard with the following general parameters
    1) MWREP connection as the repository - I have dropped and recreated the repository objects.
    2) Offline Mode for the Source Database (I've successfully created the .ocp file)
    3) PTS_April selected in the Capture page
    4) Offline Mode for the Target Database
    5) Offline Mode for the Move Data
    6) Click Finish and it runs for about 30 seconds first saying Create Project and then saying Capture.
    I then get the following error message:
    Migration actions have failed. Check the migration report for details. : ORA-01400: cannot insert NULL into ("MWREP"."MD_PROJECTS"."ID")
    Any assitance solving this problem are appreciated.

    Hi, I had exactly the same problem and I resolved it be dropping all objects associated with the migration, this involves packages, types, views etc. Once I had ensured that i had a blank canvas, i stated again and it worked succesfully, good luck, Matt

  • How to insert a image file into oracle database

    hi all
    can anyone guide me how to insert a image file into oracle database now
    i have created table using
    create table imagestore(image blob);
    but when inserting i totally lost don't know what to do how to write query to insert image file

    Hi I don't have time to explain really, I did have to do this a while ago though so I will post a code snippet. This is using the commons file upload framework.
    Firstly you need a multi part form data (if you are using a web page). If you are not using a web page ignore this bit.
    out.println("<form name=\"imgFrm\" method=\"post\" enctype=\"multipart/form-data\" action=\"FileUploadServlet?thisPageAction=reloaded\" onSubmit=\"return submitForm();\"><input type=\"FILE\" name=\"imgSource\" size='60' class='smalltext' onKeyPress='return stopUserInput();' onKeyUp='stopUserInput();' onKeyDown='stopUserInput();' onMouseDown='noMouseDown(event);'>");
    out.println("   <input type='submit' name='submit' value='Submit' class='smalltext'>");
    out.println("</form>"); Import this once you have the jar file:
    import org.apache.commons.fileupload.*;Now a method I wrote to upload the file. I am not saying that this is correct, or its the best way to do this. I am just saying it works for me.
    private boolean uploadFile(HttpServletRequest request, HttpSession session) throws Exception {
            boolean result = true;
            String fileName = null;
            byte fileData[] = null;
            String fileUploadError = null;
            String imageType = "";
            String error = "";
            DiskFileUpload fb = new DiskFileUpload();
            List fileItems = fb.parseRequest(request);
            Iterator it = fileItems.iterator();
            while(it.hasNext()){
                FileItem fileItem = (FileItem)it.next();
                if (!fileItem.isFormField()) {
                    fileName = fileItem.getName();
                    fileData = fileItem.get();
                    // Get the imageType from the filename extension
                    if (fileName != null) {
                        int dotPos = fileName.indexOf('.');
                        if (dotPos >= 0 && dotPos != fileName.length()-1) {
                            imageType = fileName.substring(dotPos+1).toLowerCase();
                            if (imageType.equals("jpg")) {
                                imageType = "jpeg";
            String filePath = request.getParameter("FILE_PATH");
            session.setAttribute("filePath", filePath);
            session.setAttribute("fileData", fileData);
            session.setAttribute("fileName", fileName);
            session.setAttribute("imageType", imageType);
            return result;  
         } And now finally the method to actually write the file to the database:
    private int writeImageFile(byte[] fileData, String fileName, String imageType, String mode, Integer signatureIDIn, HttpServletRequest request) throws Exception {
            //If the previous code found a file that can be uploaded then
            //save it into the database via a pstmt
            String sql = "";
            UtilDBquery udbq = getUser(request).connectToDatabase();
            Connection con = null;
            int signatureID = 0;
            PreparedStatement pstmt = null;
            try {
                udbq.setUsePreparedStatements(true);
                con = udbq.getPooledConnection();
                con.setAutoCommit(false);
                if((!mode.equals("U")) || (mode.equals("U") && signatureIDIn == 0)) {
                    sql = "SELECT SEQ_SIGNATURE_ID.nextval FROM DUAL";
                    pstmt = con.prepareStatement(sql);
                    ResultSet rs = pstmt.executeQuery();
                    while(rs.next()) {
                       signatureID = rs.getInt(1);
                    if (fileName != null && imageType != null) {
                        sql = "INSERT INTO T_SIGNATURE (SIGNATURE_ID, SIGNATURE) values (?,?)";
                        InputStream is2 = new ByteArrayInputStream(fileData);
                        pstmt = con.prepareStatement(sql);
                        pstmt.setInt(1, signatureID);
                        pstmt.setBinaryStream(2, is2, (int)(fileData.length));
                        pstmt.executeUpdate();
                        pstmt.close();
                        con.commit();
                        con = null;
                if(mode.equals("U") && signatureIDIn != 0) {
                    signatureID = signatureIDIn.intValue();
                    if (fileName != null && imageType != null) {
                        sql = "UPDATE T_SIGNATURE SET SIGNATURE = ? WHERE SIGNATURE_ID = ?";
                        InputStream is2 = new ByteArrayInputStream(fileData);
                        pstmt = con.prepareStatement(sql);
                        pstmt.setBinaryStream(1, is2, (int)(fileData.length));
                        pstmt.setInt(2, signatureID);
                        pstmt.executeUpdate();
                        pstmt.close();
                        con.commit();
                        con = null;
            } catch (Exception e) {
                con = null;
                throw new Exception(e.toString());
            return signatureID;
       }

  • ORA-01400: cannot insert NULL into

    hi to all
    when i try to insert into a table i get an error message like
    ORA-01400: cannot insert NULL into
    but if i see in the session status i see that the value of the element that will be inserted on the column is not null
    and i haven't make mistakes on my insert query so how can it be possible
    can you help me please

    What is the source used and the source type of your columns having trouble? Is it all not nullable columns on a table that are having problems? Are other columns inserting fine?
    Can you post up on apex.oracle.com your app?
    Do you want to send me your app and I can install it and look at the page in question?

  • How to insert more than 32k xml data into oracle clob column

    how to insert more than 32k xml data into oracle clob column.
    xml data is coming from java front end
    if we cannot use clob than what are the different options available

    Are you facing any issue with my code?
    String lateral size error will come when you try to insert the full xml in string format.
    public static boolean writeCLOBData(String tableName, String id, String columnName, String strContents) throws DataAccessException{
      boolean isUpdated = true;
      Connection connection = null;
      try {
      connection = ConnectionManager.getConnection ();
      //connection.setAutoCommit ( false );
      PreparedStatement PREPARE_STATEMENT = null;
      String sqlQuery = "UPDATE " + tableName + " SET " + columnName + "  = ?  WHERE ID =" + id;
      PREPARE_STATEMENT = connection.prepareStatement ( sqlQuery );
      // converting string to reader stream
      Reader reader = new StringReader ( strContents );
      PREPARE_STATEMENT.setClob ( 1, reader );
      // return false after updating the clob data to DB
      isUpdated = PREPARE_STATEMENT.execute ();
      PREPARE_STATEMENT.close ();
      } catch ( SQLException e ) {
      e.printStackTrace ();
      finally{
      return isUpdated;
    Try this JAVA code.

Maybe you are looking for