edu.ucsb.nceas.dbadapter

## Class OracleAdapter

- java.lang.Object
- - edu.ucsb.nceas.dbadapter.AbstractDatabase
  - - edu.ucsb.nceas.dbadapter.OracleAdapter

-     public class OracleAdapter
      extends AbstractDatabase

  The Oracle db adapter implementation.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `OracleAdapter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getDateTimeFunction()` The Oracle's function name that gets the current date and time from the database server: "sysdate"
    `java.lang.String` | `getIsNULLFunction()` The Oracle's function name that is used to return non-NULL value
    `java.lang.String` | `getLeftJoinQuery(java.lang.String selectFields, java.lang.String tableA, java.lang.String tableB, java.lang.String joinCriteria, java.lang.String nonJoinCriteria)` The Oracles's syntax for doing a left join Add 'a.' in front of the fields for first table and 'b.' in front of the fields for the second table
    `java.lang.String` | `getPagedQuery(java.lang.String queryWithOrderBy, java.lang.Integer start, java.lang.Integer count)` for generating a query for paging
    `java.lang.String` | `getReplicationDocumentListSQL()` Return a hard code string to get xml_document list in timed replcation
    `java.lang.String` | `getStringDelimiter()` The Oracles's string delimiter character: single quote (')
    `long` | `getUniqueID(java.sql.Connection conn, java.lang.String tableName)` The Oracle unique ID generator through use of sequences The name of the sequence used to generate the unique id is made from the name of the table that uses the id by appending "_id_seq" to it.

    - ### Methods inherited from class edu.ucsb.nceas.dbadapter.AbstractDatabase

      `createObject, main, toDate`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OracleAdapter

          public OracleAdapter()

  - ### Method Detail

    - #### getUniqueID

          public long getUniqueID(java.sql.Connection conn,
                                  java.lang.String tableName)
                           throws java.sql.SQLException

      The Oracle unique ID generator through use of sequences The name of the sequence used to generate the unique id is made from the name of the table that uses the id by appending "_id_seq" to it. When record is inserted in the table and insert trigger gets a nextval from that sequence, select currval of that sequence can return the generated key in the same db connection.
      Specified by:
        `getUniqueID` in class `AbstractDatabase`
      Parameters:
        `conn` - db connection in which the unique id was generated
        `tableName` - the name of table which unique id was generate
      Returns:
        return the generated unique id as a long type
      Throws:
        `java.sql.SQLException` -
        any SQLException that can be thrown during the db operation

    - #### getDateTimeFunction

          public java.lang.String getDateTimeFunction()

      The Oracle's function name that gets the current date and time from the database server: "sysdate"
      Specified by:
        `getDateTimeFunction` in class `AbstractDatabase`
      Returns:
        return the current date and time function name: "sysdate"

    - #### getIsNULLFunction

          public java.lang.String getIsNULLFunction()

      The Oracle's function name that is used to return non-NULL value
      Specified by:
        `getIsNULLFunction` in class `AbstractDatabase`
      Returns:
        return the non-NULL function name: "nvl"

    - #### getStringDelimiter

          public java.lang.String getStringDelimiter()

      The Oracles's string delimiter character: single quote (')
      Specified by:
        `getStringDelimiter` in class `AbstractDatabase`
      Returns:
        return the string delimiter: single quote (')

    - #### getLeftJoinQuery

          public java.lang.String getLeftJoinQuery(java.lang.String selectFields,
                                                   java.lang.String tableA,
                                                   java.lang.String tableB,
                                                   java.lang.String joinCriteria,
                                                   java.lang.String nonJoinCriteria)

      The Oracles's syntax for doing a left join Add 'a.' in front of the fields for first table and 'b.' in front of the fields for the second table
      Specified by:
        `getLeftJoinQuery` in class `AbstractDatabase`
      Parameters:
        `selectFields` - fields that you want to be selected
        `tableA` - first table in the join
        `tableB` - second table in the join
        `joinCriteria` - the criteria based on which the join will be made
        `nonJoinCriteria` - all other criterias
      Returns:
        return the string for teh select query

    - #### getReplicationDocumentListSQL

          public java.lang.String getReplicationDocumentListSQL()

      Return a hard code string to get xml_document list in timed replcation
      Specified by:
        `getReplicationDocumentListSQL` in class `AbstractDatabase`
      Returns:

    - #### getPagedQuery

          public java.lang.String getPagedQuery(java.lang.String queryWithOrderBy,
                                                java.lang.Integer start,
                                                java.lang.Integer count)

      Description copied from class: `AbstractDatabase`
      for generating a query for paging
      Specified by:
        `getPagedQuery` in class `AbstractDatabase`
      Parameters:
        `queryWithOrderBy` - - the complete query with SELECT, FROM, WHERE and ORDER BY clauses
        `start` - the row number to start from
        `count` - the number of records from start to return
      Returns:
        query specific to the RDBMS in use
      See Also:
        `http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html`

Copyright © 2023 Regents of the University of California. All Rights Reserved.