Adempiere 3.5.2a

org.compiere.db
Class DB_Oracle

java.lang.Object
  extended by org.compiere.db.DB_Oracle
All Implemented Interfaces:
AdempiereDatabase

public class DB_Oracle
extends Object
implements AdempiereDatabase

Oracle Database Port

Version:
$Id: DB_Oracle.java,v 1.7 2006/09/22 23:35:19 jjanke Exp $ --- Modifications: Refactoring. Replaced Oracle Cache Manager with C3P0 connection pooling framework for better and more efficient connnection handling
Author:
Jorg Janke, Ashley Ramdass (Posterita)

Field Summary
static int DEFAULT_CM_PORT
          Default Connection Manager Port
static int DEFAULT_PORT
          Default Port
static String DRIVER
          Driver Class Name
 
Fields inherited from interface org.compiere.db.AdempiereDatabase
CMD_CREATE_DATABASE, CMD_CREATE_USER, CMD_DROP_DATABASE, DEFAULT_CONN_TEST_SQL
 
Constructor Summary
DB_Oracle()
          Oracle Database
 
Method Summary
 void cleanup()
          Clean up
 void close()
          Close
 String convertStatement(String oraStatement)
          Convert an individual Oracle Style statements to target database statement syntax.
 String getAlternativeSQL(int reExNo, String msg, String sql)
          Check and generate an alternative SQL
 Connection getCachedConnection(CConnection connection, boolean autoCommit, int transactionIsolation)
          Get Cached Connection
 String getCatalog()
          Get JDBC Catalog
 String[] getCommands(int cmdType)
          Get SQL Commands.
 String getConnectionURL(CConnection connection)
          Get Database Connection String.
 String getConnectionURL(String dbHost, int dbPort, String dbName, String userName)
          Get Connection URL.
 String getConnectionURL(String connectionURL, String userName)
          Get Database Connection String
 String getConstraintType(Connection conn, String tableName, String IXName)
          Get constraint type associated with the index
 Convert getConvert()
           
 DataSource getDataSource(CConnection connection)
          Create DataSource
 String getDataType(String columnName, int displayType, int precision, boolean defaultValue)
          Get Data Type
 String getDescription()
          Get Database Description
 Driver getDriver()
          Get and register Database Driver
 Connection getDriverConnection(CConnection connection)
          Get Connection from Driver
 Connection getDriverConnection(String dbUrl, String dbUid, String dbPwd)
          Get Driver Connection
 String getName()
          Get Database Name
 String getSchema()
          Get JDBC Schema
 int getStandardPort()
          Get Standard JDBC Port
 String getStatus()
          Get Status
 String getSystemDatabase(String databaseName)
          Get Name of System Database
 String getSystemUser()
          Get Name of System User
 boolean isSupported(String sql)
          Check if DBMS support the sql statement
static void main(String[] args)
          Testing
 boolean supportsBLOB()
          Supports BLOB
 String TO_CHAR(String columnName, int displayType, String AD_Language)
          Create SQL for formatted Date, Number
 String TO_DATE(Timestamp time, boolean dayOnly)
          Create SQL TO Date String from Timestamp
 String TO_NUMBER(BigDecimal number, int displayType)
          Return number as string for INSERT statements with correct precision
 String toString()
          String Representation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DRIVER

public static final String DRIVER
Driver Class Name

See Also:
Constant Field Values

DEFAULT_PORT

public static final int DEFAULT_PORT
Default Port

See Also:
Constant Field Values

DEFAULT_CM_PORT

public static final int DEFAULT_CM_PORT
Default Connection Manager Port

See Also:
Constant Field Values
Constructor Detail

DB_Oracle

public DB_Oracle()
Oracle Database

Method Detail

getName

public String getName()
Get Database Name

Specified by:
getName in interface AdempiereDatabase
Returns:
database short name

getDescription

public String getDescription()
Get Database Description

Specified by:
getDescription in interface AdempiereDatabase
Returns:
database long name and version

getStandardPort

public int getStandardPort()
Get Standard JDBC Port

Specified by:
getStandardPort in interface AdempiereDatabase
Returns:
standard port

getDriver

public Driver getDriver()
                 throws SQLException
Get and register Database Driver

Specified by:
getDriver in interface AdempiereDatabase
Returns:
Driver
Throws:
SQLException

getConnectionURL

public String getConnectionURL(CConnection connection)
Get Database Connection String.
  Timing:
  - CM with source_route not in address_list  = 28.5 sec
  - CM with source_route in address_list      = 58.0 sec
  - direct    = 4.3-8 sec  (no real difference if on other box)
  - bequeath  = 3.4-8 sec
  

Specified by:
getConnectionURL in interface AdempiereDatabase
Parameters:
connection - Connection Descriptor
Returns:
connection String

getConnectionURL

public String getConnectionURL(String dbHost,
                               int dbPort,
                               String dbName,
                               String userName)
Get Connection URL. http://download-east.oracle.com/docs/cd/B14117_01/java.101/b10979/urls.htm#BEIDBFDF

Specified by:
getConnectionURL in interface AdempiereDatabase
Parameters:
dbHost - db Host
dbPort - db Port
dbName - db Name
userName - user name
Returns:
connection

getConnectionURL

public String getConnectionURL(String connectionURL,
                               String userName)
Get Database Connection String

Specified by:
getConnectionURL in interface AdempiereDatabase
Parameters:
connectionURL - Connection URL
userName - user name
Returns:
connection String

getCatalog

public String getCatalog()
Get JDBC Catalog

Specified by:
getCatalog in interface AdempiereDatabase
Returns:
null - not used

getSchema

public String getSchema()
Get JDBC Schema

Specified by:
getSchema in interface AdempiereDatabase
Returns:
user name

supportsBLOB

public boolean supportsBLOB()
Supports BLOB

Specified by:
supportsBLOB in interface AdempiereDatabase
Returns:
true if BLOB is supported

toString

public String toString()
String Representation

Specified by:
toString in interface AdempiereDatabase
Overrides:
toString in class Object
Returns:
info

getStatus

public String getStatus()
Get Status

Specified by:
getStatus in interface AdempiereDatabase
Returns:
status info

convertStatement

public String convertStatement(String oraStatement)
Convert an individual Oracle Style statements to target database statement syntax.

Specified by:
convertStatement in interface AdempiereDatabase
Parameters:
oraStatement - oracle statement
Returns:
converted Statement oracle statement

isSupported

public boolean isSupported(String sql)
Check if DBMS support the sql statement

Specified by:
isSupported in interface AdempiereDatabase
Returns:
true: yes

getConstraintType

public String getConstraintType(Connection conn,
                                String tableName,
                                String IXName)
Get constraint type associated with the index

Specified by:
getConstraintType in interface AdempiereDatabase
Returns:
String[0] = 0: do not know, 1: Primary Key 2: Foreign Key String[1] - String[n] = Constraint Name

getSystemUser

public String getSystemUser()
Get Name of System User

Specified by:
getSystemUser in interface AdempiereDatabase
Returns:
system

getSystemDatabase

public String getSystemDatabase(String databaseName)
Get Name of System Database

Specified by:
getSystemDatabase in interface AdempiereDatabase
Parameters:
databaseName - database Name
Returns:
e.g. master or database Name

TO_DATE

public String TO_DATE(Timestamp time,
                      boolean dayOnly)
Create SQL TO Date String from Timestamp

Specified by:
TO_DATE in interface AdempiereDatabase
Parameters:
time - Date to be converted
dayOnly - true if time set to 00:00:00
Returns:
TO_DATE('2001-01-30 18:10:20',''YYYY-MM-DD HH24:MI:SS') or TO_DATE('2001-01-30',''YYYY-MM-DD')

TO_CHAR

public String TO_CHAR(String columnName,
                      int displayType,
                      String AD_Language)
Create SQL for formatted Date, Number

Specified by:
TO_CHAR in interface AdempiereDatabase
Parameters:
columnName - the column name in the SQL
displayType - Display Type
AD_Language - 6 character language setting (from Env.LANG_*)
Returns:
TRIM(TO_CHAR(columnName,'999G999G999G990D00','NLS_NUMERIC_CHARACTERS='',.''')) or TRIM(TO_CHAR(columnName,'TM9')) depending on DisplayType and Language
See Also:
DisplayType, Env

TO_NUMBER

public String TO_NUMBER(BigDecimal number,
                        int displayType)
Return number as string for INSERT statements with correct precision

Specified by:
TO_NUMBER in interface AdempiereDatabase
Parameters:
number - number
displayType - display Type
Returns:
number as string

getCommands

public String[] getCommands(int cmdType)
Get SQL Commands. The following variables are resolved:

Specified by:
getCommands in interface AdempiereDatabase
Parameters:
cmdType - CMD_*
Returns:
array of commands to be executed

getDataSource

public DataSource getDataSource(CConnection connection)
Create DataSource

Specified by:
getDataSource in interface AdempiereDatabase
Parameters:
connection - connection
Returns:
data dource

getCachedConnection

public Connection getCachedConnection(CConnection connection,
                                      boolean autoCommit,
                                      int transactionIsolation)
                               throws Exception
Get Cached Connection

Specified by:
getCachedConnection in interface AdempiereDatabase
Parameters:
connection - info
autoCommit - true if autocommit connection
transactionIsolation - Connection transaction level
Returns:
connection or null
Throws:
Exception

getDriverConnection

public Connection getDriverConnection(CConnection connection)
                               throws SQLException
Get Connection from Driver

Specified by:
getDriverConnection in interface AdempiereDatabase
Parameters:
connection - info
Returns:
connection or null
Throws:
SQLException

getDriverConnection

public Connection getDriverConnection(String dbUrl,
                                      String dbUid,
                                      String dbPwd)
                               throws SQLException
Get Driver Connection

Specified by:
getDriverConnection in interface AdempiereDatabase
Parameters:
dbUrl - URL
dbUid - user
dbPwd - password
Returns:
connection
Throws:
SQLException

close

public void close()
Close

Specified by:
close in interface AdempiereDatabase

cleanup

public void cleanup()
Clean up


getDataType

public String getDataType(String columnName,
                          int displayType,
                          int precision,
                          boolean defaultValue)
Get Data Type

Parameters:
columnName -
displayType - display type
precision - precision
defaultValue - if true adds default value
Returns:
data type

getAlternativeSQL

public String getAlternativeSQL(int reExNo,
                                String msg,
                                String sql)
Check and generate an alternative SQL

Specified by:
getAlternativeSQL in interface AdempiereDatabase
Returns:
String, the alternative SQL, null if no alternative

main

public static void main(String[] args)
Testing

Parameters:
args - ignored

getConvert

public Convert getConvert()
Specified by:
getConvert in interface AdempiereDatabase

Adempiere 3.5.2a

Adempiere® is a registered trademark of ADempiere Business Inc. ©2004-2008 HumanFlash.com All rights reserved.