Parse oracle sql file

Good day.
I need to develope little app for executing *.sql files.
How can I parse sql file to retrieve oracle response for each statement while executing. (ex. sqlplus)??

Good day.
I need to develope little app for executing *.sql files.
How can I parse sql file to retrieve oracle response for each statement while executing. (ex. sqlplus)??

Similar Messages

  • MS Access is unable to parse Oracle SQL

    I wish to execute an outer join query in Reports 3.0 using MS
    Access at back end. Since MS Access has a different syntax of
    outer query than Oracle Sql, it is unable to parse it.
    What could be the alternative or probable solution to it.
    null

    Hi,
    Unless, you are writing dynamic queries, you might want to
    define your outerj SQL in MS Access and then issue a simple
    SELECT in Reports against the outerj MS Access query (to MS
    Access this query is just another pseudo table).
    TP.
    Bramanathan K (guest) wrote:
    : Rajeev Grover (guest) wrote:
    : : I wish to execute an outer join query in Reports 3.0 using
    MS
    : : Access at back end. Since MS Access has a different syntax
    of
    : : outer query than Oracle Sql, it is unable to parse it.
    : : What could be the alternative or probable solution to it.
    : Instead of outer join why don't you try with Union, I think
    Union
    : will go with both
    null

  • Can I use JDev eSDK to parse Oracle SQL?

    Is it possible to use oracle.javatools.db and oracle.javatools.db.sql to parse a sql?
    import oracle.javatools.db.*;
    import oracle.javatools.db.sql.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    public class TestParser
    public static void main(String[] args)
    Connection conn = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:sample", "sample", "sample");
    Database db = DatabaseFactory.findOrCreateDatabase("sample", conn);
    Schema schema = db.getDefaultSchema();
    SQLQuery sql = SQLQueryBuilderFactory.createQuery(db, schema, args[0]);
    catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
         if (conn != null)
         conn.close();
    catch (Exception se) {
    Now if run it with a select * from foo, the program will pass, but as soon as I list column names in the select list, like "select bar from foo", the program will fail with the following stack trace:
    Exception in thread "main" java.lang.StackOverflowError
    at java.lang.StringBuffer.<init>(StringBuffer.java:80)
    at oracle.jdbc.dbaccess.DBError.getMsgKey(DBError.java:1358)
    at oracle.jdbc.dbaccess.DBError.findMessage(DBError.java:786)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:176)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
    at oracle.jdbc.driver.OracleConnection.getMetaData(OracleConnection.java:1593)
    at oracle.javatools.db.AbstractDatabase.getConnection(AbstractDatabase.java:171)
    at oracle.javatools.db.DatabaseFactory.createConnection(DatabaseFactory.java:149)
    at oracle.javatools.db.AbstractDatabase.reconnect(AbstractDatabase.java:197)
    at oracle.javatools.db.AbstractDatabase.getConnection(AbstractDatabase.java:175)
    ... Repeat the last three lines
    Can someone help me with this issue?
    Thanks,

    I think I understand the issue as any call to oracle.javatools.db.Database would close the java.sql.Connection it contains and thus causing later calls to try to reconnect and for whatever reason, reconnect always fails.
    My question is why is the Connection object closed in the first place?

  • Parse .sql file

    Hello I wish to parse a .sql file and execute the queries in it, I have looked up for some solution but could not find one. Any Clue?
    Thanks
    Wilson

    Use Java.io to read the file in a buffer and split the queries on it's delimiter -which is usually the semicolon- and you're there.

  • Running sql commands from a .sql file

    Hello , I have this problem. How do i execute sql commands found in a .sql file with jdbc. My RDBMS is mysql.

    You will have to open and parse the .sql file, connect to the database, and execute the statements. You can't simply tell JDBC to run your .sql file.
    Depending on the complexity of your .sql file this is easy or hard. If its a bunch of e.g. updates or deletes or something you may be able to get away with running it as a block. In Oracle for example, you can put "begin" and "end;" around a bunch of statements and run it all together. In that case your program would open the SQL file, read the text, put it inside a "begin" and "end;", and run it as a single SQL statement.
    If its a bunch of statements that must be run independently then you'll have to programatically split them up to run one at a time. If its a select and you want to e.g. print results to the screen, well, then it gets tougher...
    - Jemiah

  • Java API for running entire ".sql" files on a remote DB ( mySQL or Oracle)?

    Hi,
    Would anyone happen to know if there's a java API for executing entire ".sql" files (containing several different SQL commands), on a remote database server ?
    It's enough if the API works with MySQL and/or Oracle.
    Just to demonstrate what i'm looking for:
    Suppose you've created sql file "c:/test.sql" with several script lines:
    -- test.sql:
    insert into TABLE1 values(3,3);
    insert into TABLE1 values(5,5);
    create table TABLE2 (name VARCHER) ENGINE innoDB; -- MYSQL specific
    Then the java API should look something like:
    // Dummy java code:
    String driver="com.mysql.jdbc.Driver";
    String url= "jdbc:mysql://localhost:3306/myDb";
    SomeAPI.executeScriptFile( "c:/test.sql", driver, url);
    Thanks.

    No such a API, but it's easy to parse all sqls in a file, then run those command:
    For instance:
    import java.sql.*;
    import java.util.Properties;
    /* A demo show how to load some sql statements. */
    public class testSQL {
    private final static Object[] getSQLStatements(java.util.Vector v) {
    Object[] statements = new Object[v.size()];
    Object temp;
    for (int i = 0; i < v.size(); i++) {
    temp = v.elementAt(i);
    if (temp instanceof java.util.Vector)
    statements[i] = getSQLStatements( (java.util.Vector) temp);
    else
    statements[i] = temp;
    return statements;
    public final static Object[] getSQLStatements(String sqlFile) throws java.
    io.IOException {
    java.util.Vector v = new java.util.Vector(1000);
    try {
    java.io.BufferedReader br = new java.io.BufferedReader(new java.io.
    FileReader(sqlFile));
    java.util.Vector batchs = new java.util.Vector(10);
    String temp;
    while ( (temp = br.readLine()) != null) {
    temp = temp.trim();
    if (temp.length() == 0)
    continue;
    switch (temp.charAt(0)) {
    case '*':
    case '"':
    case '\'':
    // System.out.println(temp);
    break; //Ignore any line which begin with the above character
    case '#': //Used to begin a new sql statement
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    case 'S':
    case 's':
    case '?':
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    v.addElement(temp);
    break;
    case '!': //Use it to get a large number of simple update statements
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    String part1 = temp.substring(1);
    String part2 = br.readLine();
    for (int i = -2890; i < 1388; i += 39)
    batchs.addElement(part1 + i + part2);
    for (int i = 1890; i < 2388; i += 53) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 4320; i > 4268; i--) {
    batchs.addElement(part1 + i + part2);
    batchs.addElement(part1 + i + part2);
    for (int i = 9389; i > 7388; i -= 83)
    batchs.addElement(part1 + i + part2);
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    break;
    default:
    batchs.addElement(temp);
    break;
    if (batchs.size() > 0) {
    v.addElement(getSQLStatements(batchs));
    batchs.removeAllElements();
    br.close();
    br = null;
    catch (java.io.FileNotFoundException fnfe) {
    v.addElement(sqlFile); //sqlFile is a sql command, not a file Name
    Object[] statements = new Object[v.size()];
    for (int i = 0; i < v.size(); i++)
    statements[i] = v.elementAt(i);
    return statements;
    public static void main(String argv[]) {
    try {
    String url;
    Object[] statements;
    switch (argv.length) {
    case 0: //Use it for the simplest test
    case 1:
    url = "jdbc:dbf:/.";
    if (argv.length == 0) {
    statements = new String[1];
    statements[0] = "select * from test";
    else
    statements = argv;
    break;
    case 2:
    url = argv[0];
    statements = getSQLStatements(argv[1]);
    break;
    default:
    throw new Exception(
    "Syntax Error: java testSQL url sqlfile");
    Class.forName("com.hxtt.sql.dbf.DBFDriver").newInstance();
    //Please see Connecting to the Database section of Chapter 2. Installation in Development Document
    Properties properties = new Properties();
    Connection con = DriverManager.getConnection(url, properties);
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    //Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    // stmt.setMaxRows(0);
    stmt.setFetchSize(10);
    final boolean serializeFlag = false;//A test switch to serialize/deserialize the resultSet
    ResultSet rs;
    for (int i = 0; i < statements.length; i++) {
    if (statements[i] instanceof java.lang.String) {
    String temp = (java.lang.String) statements;
    switch (temp.charAt(0)) {
    case 'S':
    case 's':
    case '?':
    System.out.println(temp);
    rs = stmt.executeQuery(temp);
    if (serializeFlag) {
    // serialize the resultSet
    try {
    java.io.FileOutputStream fileOutputStream = new
    java.io.FileOutputStream("testrs.tmp");
    java.io.ObjectOutputStream
    objectOutputStream = new java.io.
    ObjectOutputStream(fileOutputStream);
    objectOutputStream.writeObject(rs);
    objectOutputStream.flush();
    objectOutputStream.close();
    fileOutputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    rs.close(); //Let the CONCUR_UPDATABLE resultSet release its open files at once.
    rs = null;
    // deserialize the resultSet
    try {
    java.io.FileInputStream fileInputStream = new
    java.io.FileInputStream("testrs.tmp");
    java.io.ObjectInputStream objectInputStream = new
    java.io.ObjectInputStream(
    fileInputStream);
    rs = (ResultSet) objectInputStream.
    readObject();
    objectInputStream.close();
    fileInputStream.close();
    catch (Exception e) {
    System.out.println(e);
    e.printStackTrace();
    System.exit(1);
    ResultSetMetaData resultSetMetaData = rs.
    getMetaData();
    int iNumCols = resultSetMetaData.getColumnCount();
    for (int j = 1; j <= iNumCols; j++) {
    // System.out.println(resultSetMetaData.getColumnName(j));
    /* System.out.println(resultSetMetaData.getColumnType(j));
    System.out.println(resultSetMetaData.getColumnDisplaySize(j));
    System.out.println(resultSetMetaData.getPrecision(j));
    System.out.println(resultSetMetaData.getScale(j));
    System.out.println(resultSetMetaData.
    getColumnLabel(j)
    + " " +
    resultSetMetaData.getColumnTypeName(j));
    Object colval;
    rs.beforeFirst();
    long ncount = 0;
    while (rs.next()) {
    // System.out.print(rs.rowDeleted()+" ");
    ncount++;
    for (int j = 1; j <= iNumCols; j++) {
    colval = rs.getObject(j);
    System.out.print(colval + " ");
    System.out.println();
    rs.close(); //Let the resultSet release its open tables at once.
    rs = null;
    System.out.println(
    "The total row number of resultset: " + ncount);
    System.out.println();
    break;
    default:
    int updateCount = stmt.executeUpdate(temp);
    System.out.println(temp + " : " + updateCount);
    System.out.println();
    else if (statements[i] instanceof java.lang.Object[]) {
    int[] updateCounts;
    Object[] temp = (java.lang.Object[]) statements[i];
    try {
    for (int j = 0; j < temp.length; j++){
    System.out.println( temp[j]);
    stmt.addBatch( (java.lang.String) temp[j]);
    updateCounts = stmt.executeBatch();
    for (int j = 0; j < temp.length; j++)
    System.out.println((j+1)+":"+temp[j]);
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":" +updateCounts[j]);
    catch (java.sql.BatchUpdateException e) {
    updateCounts = e.getUpdateCounts();
    for (int j = 0; j < updateCounts.length; j++)
    System.out.println((j+1)+":"+updateCounts[j]);
    java.sql.SQLException sqle = e;
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (java.sql.SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" +
    sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    stmt.clearBatch();
    System.out.println();
    stmt.close();
    con.close();
    catch (SQLException sqle) {
    do {
    System.out.println(sqle.getMessage());
    System.out.println("Error Code:" + sqle.getErrorCode());
    System.out.println("SQL State:" + sqle.getSQLState());
    sqle.printStackTrace();
    while ( (sqle = sqle.getNextException()) != null);
    catch (Exception e) {
    System.out.println(e.getMessage());
    e.printStackTrace();

  • Parsing the word file using oracle text having tables within it............

    Hi,
    I was going through this document.Actually I am going to implement something like full text search functionality in our system.
    We get the info as .doc file.
    Earlier what we used to do is, we used to parse the file and store it into the database and then searched using PL/SQL.
    But what I understand from this article that this can be done using oracle text also.
    One concern is that whether the oracle text is able to parse the .doc file having tables embedded within it.
    Please let me know about this.(Whether oracle text will be able to parse the files having tables embedded within it).
    I am attaching an example file for this.
    Please let me know about this as early as possible.

    Yes Oracle Text have this capability. Use AUTO_FILTER or USER_FILTER to create index

  • Oracle SQL Developer  error - "The file-based source procedure Name is not present in the database."

    I recently started working on the Oracle SQL developer. I have 'select' privileges on the QA schema and when tried to execute proc in QA. It is giving the error as 'The file-based source <procedure Name>  is not present in the database.  Was it compiled?'
    instead 'you do not have sufficient privileges to execute this procedure'. Did research on internet but with no luck.What configuration changes needed to be done to make it work.Guide me.

    Sounds like you do not have the correct privileges.  What should have been granted to you by the QA user, or some other user with appropriate privileges, is...
    grant EXECUTE on "QA"."<PROCEDURE_OF_INTEREST>" to "<YOUR_USERID>" ;
    Note that a grant of execute on a procedure has nothing to do with grants of select on some or all of QA's tables and views.
    So, as Vadim suggests, from your connection node in SQL Developer's Connections view, if you expand the Other Users node, then expand QA and look in the Procedures node, do you see the procedure of interest?  If not, you cannot expect to be able to execute it from your userid's connection. And even if you do see it, you may have some other privilege that permits viewing but not executing, like...
    The role SELECT_CATALOG_ROLE
    The system privilege SELECT ANY DICTIONARY
    And even if you do not see it there, then having certain other privileges granted to you could permit executing it in general, like...
    The role EXECUTE_CATALOG_ROLE
    The system privilege EXECUTE ANY PROCEDURE
    Also, note that the 3.0 release is a bit dated nowadays. Upgrading to 4.0.3 production or even the 4.1 EA2 (early adopter) release will, in general, give you a better experience.
    Best wishes,
    Gary

  • Importing and executing a .sql file into  Oracle 10g

    Hi
    I am looking to import and execute a .sql file(create scripts created of a databse designed in MS SQL Server 2005). The file was imported into Oracle APEX 3.10 but we are unable to execute the script. Please suggest alternatives as to how we can import these files.
    Thanks in advance.

    You likely need to migrate the database (objects and data). This is not so easy and you should have a look to migration tools: http://www.oracle.com/technology/oramag/oracle/07-sep/o57sql.html.

  • How to use Oracle SQL Developer 4.0 to connect to Ms Access file with .accdb extension

    Hi all,
    I am using Oracle SQL Developer 4.0 and Ms Access 2013 under Windows 7 (64 bits)
    After browsing and selecting MS Access file with accdb extention, I got  an error message  :[Microsoft] " Data source name not found and no default driver specified".
    On Administravitve Tools=> ODBC Data Source Administrator=>Drivers I have                                                File                                date
    Name :                                                                               Version
    Microsoft Acess Driver (*.mdb, *accdb)                                 12.00.4518.1014                                        ACEODBC.DLL                    26/10/2006
    Would you please advise?
    Thank you very much in advance

    That MS Access driver is 64-bit, I think.  If SQL Developer, or JDK is 32-bit you need to use the 32-bit driver.   You can see if you have a 32-bit driver installed using  c:\windows\system32\odbcadm32.exe

  • Oracle 9i export error after running catexp.sql file

    After running catexp.sql file in oracle 9i 9.2.0.7.0 as system user,it gives the following error while logging
    ORA-04020: deadlock detected while trying to lock object SYS.DBMS_STANDARD
    please help me..............

    "catexp.sql" is to be run by SYS AS SYSDBA.
    You'd have to cleanup any extra objects that you created in the SYSTEM account.
    Why did you think that you needed to run "catexp.sql" ? Are you exporting using 9i exp against a 10g database or against a 9i database ?

  • How to execute command(program) from external file in Oracle SQL developer

    Hi,
    Does anyone know, Oracle SQL developer version 1.0.0.14.67 got any function that can execute command from an external file?
    Example, i have 100 insert SQL inside a text file,
    and i want to use Oracle SQL developer to execute it. How do i read from my text file? Thanks a lots.

    If you're new to Oracle, do yourself and us a favour: read some tutorials and manuals. What sqldev's worth, better download the latest version (1.1.2), lots of fixes and enhancements...
    Now for the big popper: to run an external file: @file
    Best of luck,
    K.

  • Send mails with csv file as an attachment through oracle(SQL SCripts / Stor

    Hello Everybody,
    I have recently come across a requirement in which I am supposed to send mails with csv file as an attachment through oracle(SQL SCripts / Stored Procedure) .
    The contents of the csv file are to be retreived from the Database as well as the content of the mail and to whom it needs to be sent has also to be picked up from the database.
    Can somebody suggest me with a suitable code for the same?
    Would be of great help..!!
    Thanks & Regards,
    - VR
    Edited by: user646716 on Dec 18, 2009 10:44 AM

    read below links
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:255615160805
    http://www.orafaq.com/wiki/Send_mail_from_PL/SQL#Send_mail_with_UTL_TCP_-withattachments
    How to send csv file as an attachment

  • Running/Compiling *.java file in Oracle Sql Developer

    I want to compile/run java 5.0 files in Oracle sql developer1.1.2.25 on Fedora 5 platform.
    I have added javac as an enternal tool to compile java programs. Tools-->External Tools-->New
    I have also added java: /usr/java/jre1.5.0_10/bin/java as an external tool to run the complied programs
    I am able to compile the java programs, but i am not able to run them.
    I am providing ${file.name.no.ext} as an argument to java.
    Java-Log Output is:
    /usr/java/jre1.5.0_10/bin/java Writer2
    Exception in thread "main" java.lang.NoClassDefFoundError: Writer2
    However, if i run the same program in Linux terminal, i get the correct output:
    [root@localhost java]# which java
    /usr/java/jre1.5.0_10/bin/java
    [root@localhost java]# /usr/java/jre1.5.0_10/bin/java Writer2
    12
    howdy
    folks
    How can i make Oracle Sql Developer run the java program?

    I will echo the use jdev comment..
    Regardless, you may want to check the execute in directory.. or add a -cp parameter.
    Eric

  • Oracle SQL Developer - File, Open , File Name Not Accept UNC Path Form

    In Oracle SQL Developer, at least the File, Open (Dialog's), the File Name (if not all File / Directory Name) Text Box(es) is (are) not accepting, at least for me, the UNC Path Form of Folders on Network Servers. The same UNC Path (or UNC Paths in general) works in the File / Directory Name Text Box of every other Windows App I've tried (from Windows 95 to Windows 7). Is there a way to do this? If not, was it intentional and where can I suggest this as a fix / enhancement?
    I'm using Windows XP w/ SP3.

    DUH! I figured out what happened. In my first search, I searched (using "Actions", "Filter", "Column" option) for "Title Contains 'UNC'" which didn't find anything because the single-quotes were considered literals (which isn't consistent with the "Row" option or with the technical SQL syntax one would expect given technical operators like "!=", pffft, "!="??? Really???). Then, all subsequent searches returned nothing, because all previous searches are combined with implied "And" Operators until you select "Actions", "Reset" (which isn't consistent with any Web / Desktop App search feature I've ever seen). Don't get me wrong. The latter is a great feature. It just needs to be documented better.
    It probably wouldn't hurt to: a) include easily visible tips on whether single / double quotes are needed and b) show an "And" Operator in front of each previous search listed so people won't mistake it for simply a Search Criteria History vs. Current Search Criteria, oh and add a heading that labels it as, oh, IDK, "Current Search Criteria", maybe? IDK, call me crazy (or just another stupid user posing as a developer with 16 years experience ;).

Maybe you are looking for

  • Is there a way to "name" my apps for siri? iOS6

    With the new iOS 6 upgrade, I was able to get siri to launch some apps, but not all.  My guess is that I simply do not know what to call the app when requesting that siri open it.  So, is there a way to "nickname" apps for siri?  When I open my setti

  • Simple Browser - can't run programs

    I installed the game Cars on the new iMac - it runs under my (admin) account, but will not run uner the kid's simple browser user accounts - any idea why not? Thanks

  • HRMD_A ALE Problems

    A while back I set up HR Master Data distribution. Initially, the client was running HR on the same server as FI, MM, SD etc. They wanted to move to a new HR server for security reasons. I set up the ALE in order to connect the HR system to the R/3 s

  • I cannot get Elements 11 to launch from a new install.

    I have spent 1 1/2 hours trying to get elements 11 editor to start.

  • Wrong short text for sales order item

    Hi guys, I have an issue for the short text for sales order item. It is werid that I get the different short text depends on how we enter the material. If we only enter the material #, we get the short text for sales order item from material master d