How Oracle JDBC driver determine DATE data type parameter if it is not specified

Hello,
Oracle JDBC driver determine the DATE data type of parameter correctly without any typecasting.
Example:
ps = conn.prepareStatement("SELECT ? FROM DUAL");
ps.setObject(1, Date.valueOf("2014-01-11"));
How Oracle JDBC driver determine the DATE data type of parameter.
Thought?
Regards,
Vinayak

Oracle JDBC driver determine the DATE data type of parameter correctly without any typecasting.
Example:
ps = conn.prepareStatement("SELECT ? FROM DUAL");
ps.setObject(1, Date.valueOf("2014-01-11"));
How Oracle JDBC driver determine the DATE data type of parameter.
Your question isn't clear. If the driver is doing it correctly what PROBLEM are you having? What exactly do you consider 'correct'? What results are you getting? What driver name and version are  you using? What Oracle DB version are you using?
For the code you use above the 'Date' you specify is a java.sql.Date instance
http://docs.oracle.com/javase/8/docs/api/java/sql/Date.html#valueOf-java.lang.String-
public static Date valueOf(String s)
Converts a string in JDBC date escape format to a Date value.
Parameters:
s - a String object representing a date in in the format "yyyy-[m]m-[d]d". The leading zero for mm and dd may also be omitted.
Returns:
a java.sql.Date object representing the given date
The JDBC Dev Guide shows that is mapped to an oracle.sql.DATE
http://docs.oracle.com/cd/E11882_01/java.112/e16548/datacc.htm#g1028145
Oracle DATE datatypes have both date and time components. Depending on the JDBC driver version and DB version you are using an Oracle date could be mapped to a Java Date (which does NOT have a time component) or, for current versions, would be considered a timestamp..

Similar Messages

  • Oracle JDBC driver and the object types cache

    Hi there,
    Oracle JDBC Developer's Guide and Reference says (version 11gR1):
    Oracle JDBC drivers cache array and structure descriptors. This provides enormous performance benefits. However, it means that if you change the underlying type definition of a structure type in the database, the cached descriptor for that structure type will become stale and your application will receive a SQLException exception.http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/oraoot.htm#g1104293
    That is the problem we are having here... We have web services deployed to WebLogic server that use custom object types. Every time we have to change an object type definition the web services stop working (the error ORA-00902: invalid datatype is raised) and the only solution is to restart the JDBC data source which is quite disruptive to the development process.
    Is there a workaround to disable that "feature"?
    Thanks
    Luis

    Luis Cabral wrote:
    jschell wrote:
    Although if you are changing the object structure then the code to deal with it must change as well. So, especially in developement, why is restarting a problem?It is not that restarting per se is a problem. Here us developers do not have the required privileges to restart the JDBC pool and we have to ask the DBA to do it, and sometimes he is not immediately available. It is not a big thing but this can impact the development process.Your development process is hideously flawed then.
    The pool exists in the JEE server. And from your first post it seems that you have permission to restart that but not to access the management console. It is ridiculous to have access the the former and not the later.
    Not to mention that you should have your own JEE instance to develop on. Actually it is weird to me that a DBA would even be touching a JEE server. The competent ones I know don't even know how to do that. They know the database not the application servers.
    >
    In addition, having to restart a whole JDBC pool just because you changed a database object definition does not seem very flexible to me. Such issue does not exist in other connection types, for instance in OCI connections, that is why I thought there should be an option to turn it off if required.
    Well specifically you have to restart the pool because you were USING the object that changed.
    And I am rather certain that you can turn off the pool entirely.
    Even in production, I reckon that this may have a negative impact. For instance, say that you need to deploy a hot fix for a bug in one application that involves the re-creation of one single object type. This means that the whole JDBC pool, which may be used by other applications, may have to be shut down just because of that single object.Good point.
    I suggest you stop using complex objects in Oracle. I suspect that would eliminate the problem completely.

  • How do I determine JDBC Version? - oracle.jdbc.driver

    The following is my path and classpath and script.
    Path = D:\oracle\ora90\bin;
    D:\oracle\ora90\Apache\Perl\5.00503\bin\mswin32-x86;
    C:\Program Files\Oracle\jre\1.1.8\bin;
    %SystemRoot%\system32;
    %SystemRoot%;
    %SystemRoot%\System32\Wbem;
    C:\Program Files\Common Files\AdaptecShared\System;
    C:\Program Files\Java\j2re1.4.2\bin;
    D:\oracle\ora90\LIB
    classpath = .;
    C:\Program Files\Java\j2re1.4.2\bin;
    D:\oracle\ora90\jdbc\lib\
    JDBCVersion.java
    import java.sql.*;
    import oracle.jdbc.driver.*;
    class JDBCVersion
    public static void main (String args[])
    throws SQLException
    //DriverManager.registerDriver
    //(new oracle.jdbc.driver.OracleDriver());
    // Load the Oracle JDBC driver
    DriverManager.registerDriver
    (new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection
    ("jdbc:oracle:thin:scott/tiger@t3100:1521:oracle");
    // Create Oracle DatabaseMetaData object
    DatabaseMetaData meta = conn.getMetaData();
    // gets driver info:
    System.out.println("JDBC driver version is " + meta.getDriverVersion());
    this throws the following:
    D:\oracle\ora90\jdbc\demo\samples\thin\basic\JDBCVersion.java:2: package oracle.jdbc.driver does not exist
    import oracle.jdbc.driver.*;
    ^
    D:\oracle\ora90\jdbc\demo\samples\thin\basic\JDBCVersion.java:14: package oracle.jdbc.driver does not exist
    (new oracle.jdbc.driver.OracleDriver());

    DON'T import the Oracle packages.
    That's all hidden from you by the java.sql code. All you do is register the driver and get a connection:
    Class.forName("driverClassName");
    Connection connection = DriverManager.getConnection("url", "user", "pswd");You might have a "ClassNotFoundException" in your future. I'll bet the JDBC JARs aren't in your CLASSPATH. Make sure they're JARs, not zips. Oracle used to have everything in classes12.zip, but now they've gotten smart and put them in JARs for 9.2.0.1. - MOD

  • Determine data type

    Hi all,
    I've got procedure for inserting data into value1 column of table1.
    My need is to determine data type entered by user.
    If data type is not number then user should receive error.
    How do I perform it?

    The easiest and most reliable way would be to declare the formal parameter as a number like:
    SQL> create procedure p (p_num in number) as
      2  begin
      3     null;
      4  end;
      5  /
    Procedure created.
    SQL> exec p('a');
    BEGIN p('a'); END;
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    ORA-06512: at line 1If you cannot do that, or want to be more "user friendly", then the only alternative is to test it and raise an error like:
    SQL> create procedure p (p_str in varchar2) is
      2     l_num number;
      3  begin
      4     l_num := to_number(p_str);
      5  exception
      6     when value_error then
      7        raise_application_error(-20001, 'I know I said it was a string, but I really want a number');
      8  end;
      9  /
    Procedure created.
    SQL> exec p('a');
    BEGIN p('a'); END;
    ERROR at line 1:
    ORA-20001: I know I said it was a string, but I really want a number
    ORA-06512: at "OPS$ORACLE.P", line 7
    ORA-06512: at line 1John

  • How to use Oracle jdbc driver fixedString property?

    Oracle pads values in char columns so if I insert "a" in a CHAR(2) column then I cannot get that record by comparing that column to "a", I should get it by comparing it to "a ". Right?
    To solve this problem the Oracle jdbc driver has the property fixedString but I cannot make it work. (look for fixedString here )
    I'm using ojdbc14.jar driver for Oracle 10gR2 and accessing an Oracle 10gR2 database.
    This is my code:
    try {
    Properties props = new Properties();
    props.put("user", "****");
    props.put("password", "****");
    props.put("fixedString", true);
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String jdbcUrl = "jdbc:oracle:thin:@<host>:<port>:<sid>";
    Connection connection = DriverManager.getConnection(jdbcUrl, props);
    PreparedStatement ps = connection.prepareStatement(
    "SELECT * FROM MY_TABLE WHERE MY_TABLE_ID = ?");
    ps.setObject(1, "abc"); // (*)
    // MY_TABLE_ID is CHAR(15)
    ResultSet rs = ps.executeQuery();
    while (rs.next())
    System.out.print("data: ");
    System.out.println(rs.getString("MY_TABLE_ID"));
    rs.close();
    ps.close();
    connection.close();
    } catch (SQLException ex) {
    ex.printStackTrace();
    } catch (ClassNotFoundException ex) {
    ex.printStackTrace();
    The above code executes fine (no exceptions thrown) but the ResultSet is empty after executeQuery().
    If I change the line (*) for
    ps.setObject(1, "abc ");
    Then I get the column I wanted. So it seems the driver is ignoring the fixedString option.
    I've also tried changing the line (*) for
    ps.setObject(1, "abc", java.sql.Types.CHAR);
    But the ResultSet I get is empty again. What am I missing?
    Thanks in advance

    Es un Bug se corrige en la versión del OAS 10.1.2.3
    Bug 10222534: UNABLE TO SET FIXEDSTRING PROPERTY IN DATASOURCE

  • How to use Oracle jdbc driver fixedString property in datasource.xml?

    I try configured fixedString property in the datasource.xml but doesnt work, this is in oc4j
    <data-source location="jdbc/prueba" class="com.evermind.sql.DriverManagerDataSource"
    password="xxxxx"
    max-connect-attempts="3"
    xa-location="jdbc/xa/prueba"
    ejb-location="jdbc/prueba"
    wait-timeout="1800"
    connection-driver="oracle.jdbc.driver.OracleDriver"
    username="xxxx" min-connections="35"
    max-connections="300"
    url="jdbc:oracle:thin:@144.1.0.54:1521:nodox"
    inactivity-timeout="300" name="jdbc/prueba">
    <property name="fixedString" value="true"/>
    </data-source>
    i Solved this problem in tomcat:
    <Resource name="jdbc/testsql" auth="Container"
    type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@144.1.0.54:1521:nodox"
    username="xxxxx" password="xxxxxxxx"
    maxActive="8" maxIdle="4" connectionProperties="fixedString=true;"/>

    Es un Bug se corrige en la versión del OAS 10.1.2.3
    Bug 10222534: UNABLE TO SET FIXEDSTRING PROPERTY IN DATASOURCE

  • How to use the oracle jdbc driver

    hi all,
    i have use the jdbc driver for oracle before but this time i<m under a hp-ux system and it seems to be different
    the dba here said the odbc driver and the jdbc driver where install but i get this error when i compile the code
    Class oracle.jdbc.driver.OracleDriver not found in type declration.
    if i try to use a odbc driver i can compile(since the classes are in jdk1.3) but i get this error at run time
    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(Compiled Code)
    at java.sql.DriverManager.getConnection(DriverManager.java:126)
    at TestOracle.<init>(TestOracle.java:33)
    at TestOracle.main(TestOracle.java:126)
    can someone help me out to better understand what is wrong
    it seems the drivers are not install but again the dba assures me they are
    import java.sql.*;
    import java.io.*;
    public class TestOracle {
    public TestOracle()
    // Load the Oracle JDBC driver
    // Connect to the database
    // search the dossiers numbers in the right table depending on criteria
    // if demands comes from extranet verify to only send back the dossier
    // numbers that are linked to the customer
    // Load the Oracle JDBC driver
    try
         //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
         //Class.forName("oracle.djbc.driver.OracleDriver");
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    catch( Throwable t ){t.printStackTrace();}
    //SQLException,IOException,ClassNotFoundException,
    //IllegalAccessException,InstantiationException
    try
         // Connect to the database
         // You can put a database name after the @ sign in the connection URL.
         Connection conn =
              //DriverManager.getConnection ("jdbc:oracle:oci8:@COLDDEV", "USER", "PPP");
              DriverManager.getConnection("jdbc:odbc:COLDDEV","USER", "PPP");
         Statement stmt = conn.createStatement ();
         ResultSet r = stmt.executeQuery("select * from Dossier");
         stmt.close();
         System.out.println("trouver:" + r.getString("Dossier_Number"));
    catch (SQLException e){e.printStackTrace();}
    public static void main(String[] args)
    TestOracle testOracle1 = new TestOracle();
    here is the code iuse

    http://forum.java.sun.com/thread.jsp?forum=48&thread=187964&start=0&range=15#608968
    The above link is a comprehensive "How to get set up and on my way" that I made for someone else learning Oracle/jdbc. Kind of a self-help resource page. I would start from the beginning and download the newest drivers, then set up your environment,...etc.
    hope this helped,
    Jamie

  • How to Include Oracle JDBC Driver

    Hi Experts,
    We have a requirement to access the database  through Java Code. We are using NWDS. But we are n't able to find a clue, how to add the driver to the project. This option was there in Eclipse, if I remember correctly.
    We are using NWDS for the first time. Could any one please give a clue, if we need to do the same in a different way.
    Regards,
    SS

    Hi Vijay,
    Thanks for the reply. But we need a stand alone program to run at the command prompt(of SAP server), and the sample code is as follows.
    package abc;
    import java.sql.Driver;
    import java.sql.DriverManager;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    * @author SahuS
    * To change the template for this generated type comment go to
    * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    public class InsertData {
         public static void main(String[] args) throws SQLException {
              Statement mystat = null;
              Connection conn = null;
              try
                     // Step 1: Load the JDBC driver.
                     Class.forName("oracle.jdbc.driver.OracleDriver");
                     // Step 2: Establish the connection to the database.
                       conn = DriverManager.getConnection(
                                       "jdbc:oracle:thin:@SERVERNAME:1527:SXI",       // URL
                                        "SAPSXIDB",       // username
                                         "PASSWORD"        // password
                         mystat = conn.createStatement();
                        ResultSet rs = mystat.executeQuery("select * from sapsxidb.zemp_1;");
                        while (rs.next()) {
                        System.out.println(
                        rs.getInt(1) +      // first column
                        "\t" +              // the horizontal tab
                        rs.getString(2)     // second column
                        mystat.close();
                        conn.close();                           
                   catch (Exception e)
                     System.err.println("Got an exception! ");
                     System.err.println(e.getMessage());
                   finally{
    As, we could not get the option to import the Oracle JDBC Driver, we are getting exception
    Got an exception!
    oracle.jdbc.driver.OracleDriver
    So, any clue, how we can import the driver in NWDS and use it?
    Regards,
    SS

  • How to define MDM real data type in ABAP ?

    Hi,
    I want to fetch MDM Repository data using MDM API .
    I am strugling as one field in MDM is of real type .
    Please tell me how I could define Real data type field in ABAP ?
    Thanks.
    Sandesh

    I recently had a Real type added to a repository I'm working on and noticed a dump in the API itself when trying to fetch data from that field. I'm running 5.5 so you may be experiencing a different issue. I haven't resolved the issue yet as it isn't a priority but I will most likely move to a string field and just ensure that the field has its decimal rule respected logically.

  • How to access the Custom Data type variable given in Expression edit control To and From LabVIEW

    Hello, I would like to know how to access the custom data type variable given in the Espression Edit Control from LabVIEW and vice-versa
    Say, the FileGlobals.Reference_Handle (Custom Data Type Variable) contains the
    VISA I/O session (Which in turn contains VISA_DeviceName: String, Session: Number),
    Channel1: Number and
    Channel2: Number
    I am expecting the user to give FileGlobals.Reference_Handle as the input at the ExpressionEdit Control in the edit screen of the VI Call.
    I would like to know how to get the values of this custom data type to LabVIEW?
    Say, if I have the Cluster in LabVIEW like VISA I/O session (Deive Name and Session Number), Channel1 and Channel2
    how do i need to set this cluster to the Custom Data type variable in TestStand?
    Thanks and Regards
    Prakash 

    Hi,
    TestStand to LabVIEW: i didnt understand what you r trying to achieve. But if you are using references, Use Property nodes and Invoke nodes to achieve what you want in LabVIEW.
     LabVIEW to TestStand: check the image below: You need to click the button next to 'container'. I have used a cluster output in the VI.
    Hope this helps
    .......^___________________^
    ....../ '---_BOT ____________ ]
    ...../_==O;;;;;;;;_______.:/
    Attachments:
    1.JPG ‏187 KB

  • How to update oracle jdbc driver to 11.1.0.7.0 JDBC Drivers

    HI,
    I got a jdbc exception *" java.lang.ArrayIndexOutOfBoundsException "*.
    I have known that it is a Oracle JDBC bug and Oracle BUG number is BUG-6396242.
    The problem is too many rows per database transaction and it is fixed at version 11.1.0.7 Oracle JDBC Drivers.
    Here is the 11.1.0.7 Oracle JDBC Driver Readme.
    http://www.oracle.com/technetwork/database/enterprise-edition/111070-readme-083278.html
    and the download
    http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html
    My question is :
    *1.How to update oracle jdbc drivers with those downloads ?*
    (ps. I have replaced ojdbc5_g.jar, ojdbc5.jar, ojdbc6_g.jar, ojdbc6_g.jar in $ORACLE/jdbc, but it did'nt work. )
    *2.My Oracle version is 11.1.0.6.0, will it be OK if only update the JDBC driver?*
    *3.Do I need to update the jdbc driver where my program runs on the client side ?*
    Thanks for answers~ :)

    Upgrade your database version to 11.1.0.7.
    Installation docs are included with all patches and upgrades.

  • How to avoid oracle.jdbc.driver.OracleConnection using

    i'am new in Java but recently i've got a project on support.
    Problem:
    solution worked on jvm 1.4, now on 1.7.
    Respectively, class oracle.jdbc.driver.OracleConnection has been used.
    Now I need class oracle.jdbc.OracleConnection to use CLOB.createTemporary() but...I can't.
    According to the docs, it's enough to replace in code and config files one class declaration on another. But NO. I replaced all of them in all config files and anyway, there was only oracle.jdbc.driver.OracleConnection has been created. (there is no explicit declaration of connection type in code, everything is configured in config files)
    Project uses marven, mybatis-3.1.1. Database: oracle 9
    Driver: ojdbc14-9.2.0.5.jar contains both classes: both oracle.jdbc.driver.OracleConnection (for backward compatibility) and oracle.jdbc.OracleConnection.
    The matter is what should i do to use second one instead of first one.
    May be there is some java cache? I do not know...
    Anybody knows?

    Now I need class oracle.jdbc.OracleConnection to use CLOB.createTemporary() but...I can't.
    Why not? You have to explain, in detail, WHAT you are trying and WHY you say you "can't" do it.
    According to the docs, it's enough to replace in code and config files one class declaration on another.
    That is correct - this IS all that is required. Replace ALL references to 'oracle.jdbc.driver' in your code.
    But NO. I replaced all of them in all config files and anyway, there was only oracle.jdbc.driver.OracleConnection has been created. (there is no explicit declaration of connection type in code, everything is configured in config files)
    We can't SEE what 'config' information you say you changed. It is what is in the CODE that matters, not what is in a config file.
    If the 'oracle.jdbc.driver' package is being imported by your code and a reference to 'Connection' is made Java will use it from the first package that it finds the class in.
    You are using an ANCIENT jdbc jar file. That doc you linked to WARNS you that you should upgrade and that doc is over ten years old.
    Remove that old jdbc jar file and use the current driver. Also remove references to the old package and replace them with references to the new package.
    With code and jars that are that old you can expect to have problems trying to use additional features, especially extensions. I would be surprised if you didn't have other issues as well.
    You need to perform code review to find all of the references that need to be corrected.

  • How can I get network data type

    how can I get network data type: ip, gatway, sub mask, and DNS on the Mac. windwos system and so go on and put cmd ipconfig / all adiquirr how can this data in mac book pro XOS.
    thanks,
    Marcello

    Select  ▹ System Preferences ▹ Network ▹ Advanced ▹ TCP/IP.

  • How to config the CLASSPATH in Win2000 server for JDBC(oracle.jdbc.driver,*)

    I am using the OS: Win2000 Server.I need to connect to some remote DataBase,but I
    don't know how to config the driver in the CLASSPATH environment variable, my Problem is: when I import the oracle.jdbc.driver.OracleDriver ,and run the program, it warns to me that it cannot find the class,and i know i didnot config the CLASSPATH in environment variables, so I want someone to tell me how to config it ,and where should the file "class12.zip" be placed !
    Thank you! maybe the problem is a piece of cake for you ,but now i do not know how to deal with it!

    Hi ,
    try this,
    http://myjdbc.tripod.com/basic/jdbcurl.html
    Regards
    Elango.

  • How to invoke functions and data type( ex. sflight structure ) that is in t

    Hi,experts,
    I create a funcion(zz_test) that return sflight table type data. I need to invoke the function in the Webdynpro for java application.
    I think I would import the funtion to local.
    But I don't know how to import the function and the data type using SAP NetWeaver Developer Studio?
    But I don't know how to invoke functions and data type( ex. sflight structure ) that is in the R/3 in the WDJ?
    Do you give me some hints?
    Thanks a lot!
    Best regards,
    tao

    Hi Wang Tao,
    For achieving this you need to user Adaptive RFC models.
    This link explains you on the same :
    http://help.sap.com/saphelp_nw70/helpdata/EN/6a/11f1f29526944e8580c5e59333d96d/frameset.htm
    Thanks
    Namrata

Maybe you are looking for

  • Anonymous PL/SQL vs procedure inside package

    It's probably quite simple problem but I'm not able to figure it out. If I make an anonymous PL/SQL block declare l_counter number(4); begin SELECT * into l_counter FROM (SELECT count(*) FROM SYS.all_objects WHERE owner IN ('USER1', 'USER2') AND obje

  • Problem in XI Receiver

    Hi Guys, Im using  SAP XI version 7...im just a beginner using XI.. In runtime workbench...the comm channel for sender and receiver is correctly configured and started but in status its has an error. This is the actual path of my comm channel. *file

  • "Stop running the script?" error after power-up and before starting Firefox

    I have a Windows 7 x64 Enterprise system with Firefox 10.0.02. I'm getting the error ''''''Stop running this script?''' '''A script on this page is causing your web browser to run slowly. If it continues to run, your computer may become unresponsive'

  • Cannot receive varification e-mail with Apple ID

    Hi, I cannot receive the verification e-mail for my Apple ID. I tried it about a 100 times but i don't get it. I also tried it with to other e-mailadresses. Has anyone suggestions? greets laurens

  • How do I get home button iPod touch 4G working again

    How do I get home button iPod touch 4G working again. Test link send by apple support does not work.