Package org.apache.derby.impl.load
Class Import
- java.lang.Object
-
- org.apache.derby.vti.VTITemplate
-
- org.apache.derby.impl.load.ImportAbstract
-
- org.apache.derby.impl.load.Import
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.ResultSet
,java.sql.Wrapper
,AwareVTI
public class Import extends ImportAbstract
This class implements import of data from a URL into a table. Import functions provided here in this class shouble be called through Systement Procedures. Import uses VTI , which is supprted only through Systemem procedures mechanism.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.derby.vti.VTITemplate
VTITemplate.ColumnDescriptor
-
-
Field Summary
Fields Modifier and Type Field Description private static int
_importCounter
private static java.util.Hashtable<java.lang.Integer,Import>
_importers
private java.lang.String
inputFileName
private static short
skip
-
Fields inherited from class org.apache.derby.impl.load.ImportAbstract
COLUMNNAMEPREFIX, columnNames, columnTypeNames, columnTypeNamesString, columnWidths, controlFileReader, importReadData, importResultSetMetaData, lineNumber, lobsInExtFile, nextRow, noOfColumnsExpected, numberOfColumns, tableColumnTypes, tableColumnTypesStr, udtClasses, udtClassNamesString
-
-
Constructor Summary
Constructors Constructor Description Import(java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, int noOfColumnsExpected, java.lang.String columnTypes, boolean lobsInExtFile, int importCounter, java.lang.String columnTypeNames, java.lang.String udtClassNamesString)
Constructor to Invoke Import from a select statement
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static int
bumpImportCounter()
private void
doImport()
private static java.sql.SQLException
formatImportError(Import importer, java.lang.String inputFile, java.lang.Throwable t)
(package private) ImportReadData
getImportReadData()
virtual method from the abstract classstatic void
importData(java.sql.Connection connection, java.lang.String schemaName, java.lang.String tableName, java.lang.String insertColumnList, java.lang.String columnIndexes, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile, short... extraArgs)
SYSCS_IMPORT_DATA system Procedure from ij or from a Java application invokes this method to perform import to a table from a file.static void
importTable(java.sql.Connection connection, java.lang.String schemaName, java.lang.String tableName, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile, short... extraArgs)
SYSCS_IMPORT_TABLE system Procedure from ij or from a Java application invokes this method to perform import to a table from a file.private static void
performImport(java.sql.Connection connection, java.lang.String schemaName, java.lang.String insertColumnList, java.lang.String columnIndexes, java.lang.String tableName, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile)
private static java.lang.String
quoteStringArgument(java.lang.String string)
Quote a string argument so that it can be used as a literal in an SQL statement.private static java.lang.String[]
readHeaders(java.lang.String inputFileName, java.lang.String characterDelimiter, java.lang.String columnDelimiter, java.lang.String codeset)
-
Methods inherited from class org.apache.derby.impl.load.ImportAbstract
close, destringifyObject, doAllTheWork, getBlob, getBytes, getClob, getCurrentLineNumber, getMetaData, getObject, getRow, getString, importError, loadColumnNames, next, readObject, wasNull
-
Methods inherited from class org.apache.derby.vti.VTITemplate
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getConcurrency, getContext, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getReturnTableSignature, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, isWrapperFor, last, moveToCurrentRow, moveToInsertRow, notImplemented, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setContext, setFetchDirection, setFetchSize, unwrap, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp
-
-
-
-
Field Detail
-
_importCounter
private static int _importCounter
-
_importers
private static java.util.Hashtable<java.lang.Integer,Import> _importers
-
inputFileName
private java.lang.String inputFileName
-
skip
private static short skip
-
-
Constructor Detail
-
Import
public Import(java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, int noOfColumnsExpected, java.lang.String columnTypes, boolean lobsInExtFile, int importCounter, java.lang.String columnTypeNames, java.lang.String udtClassNamesString) throws java.sql.SQLException
Constructor to Invoke Import from a select statement- Parameters:
inputFileName
- The URL of the ASCII file from which import will happen- Throws:
java.sql.SQLException
- on error
-
-
Method Detail
-
doImport
private void doImport() throws java.lang.Exception
- Throws:
java.lang.Exception
-
importTable
public static void importTable(java.sql.Connection connection, java.lang.String schemaName, java.lang.String tableName, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile, short... extraArgs) throws java.sql.SQLException
SYSCS_IMPORT_TABLE system Procedure from ij or from a Java application invokes this method to perform import to a table from a file. The extraArgs parameter is variadic, and is used when this method is called from SYSCS_IMPORT_TABLE_BULK, in which case extraArgs[0] specifies the number of header lines to skip.- Parameters:
connection
- The Derby database connection URL for the database containing the tableschemaName
- The name of the schema where table to import existstableName
- Name of the Table the data has to be imported to.inputFileName
- Name of the file from which data has to be imported.columnDelimiter
- Delimiter that seperates columns in the filecharacterDelimiter
- Delimiter that is used to quiote non-numeric typescodeset
- Codeset of the data in the filereplace
- Indicates whether the data in table has to be replaced or appended.(0 - append , > 0 Replace the data)lobsInExtFile
- true, if the lobs data is stored in an external file, and the reference to it is stored in the main import file.- Throws:
java.sql.SQLException
- on errors
-
importData
public static void importData(java.sql.Connection connection, java.lang.String schemaName, java.lang.String tableName, java.lang.String insertColumnList, java.lang.String columnIndexes, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile, short... extraArgs) throws java.sql.SQLException
SYSCS_IMPORT_DATA system Procedure from ij or from a Java application invokes this method to perform import to a table from a file.- Parameters:
connection
- The Derby database connection URL for the database containing the tableschemaName
- The name of the schema where table to import existstableName
- Name of the Table the data has to be imported to.insertColumnList
- Comma Seperated column name list to which data has to be imported from file.eg: 'c2,c2,'c3'.columnIndexes
- Comma sepearted Lit Index of the columns in the file(first column starts at 1). eg: '3 ,4 , 5'inputFileName
- Name of the file from which data has to be imported.columnDelimiter
- Delimiter that seperates columns in the filecharacterDelimiter
- Delimiter that is used to quiote non-numeric typescodeset
- Codeset of the data in the filereplace
- Indicates whether the data in table has to be replaced or appended.(0 - append , > 0 Replace the data)lobsInExtFile
- true, if the lobs data is stored in an external file, and the reference is stored in the main import file.- Throws:
java.sql.SQLException
- on errors
-
performImport
private static void performImport(java.sql.Connection connection, java.lang.String schemaName, java.lang.String insertColumnList, java.lang.String columnIndexes, java.lang.String tableName, java.lang.String inputFileName, java.lang.String columnDelimiter, java.lang.String characterDelimiter, java.lang.String codeset, short replace, boolean lobsInExtFile) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
readHeaders
private static java.lang.String[] readHeaders(java.lang.String inputFileName, java.lang.String characterDelimiter, java.lang.String columnDelimiter, java.lang.String codeset) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
getImportReadData
ImportReadData getImportReadData() throws java.lang.Exception
virtual method from the abstract class- Specified by:
getImportReadData
in classImportAbstract
- Throws:
java.lang.Exception
- on error
-
bumpImportCounter
private static int bumpImportCounter()
-
formatImportError
private static java.sql.SQLException formatImportError(Import importer, java.lang.String inputFile, java.lang.Throwable t)
-
quoteStringArgument
private static java.lang.String quoteStringArgument(java.lang.String string)
Quote a string argument so that it can be used as a literal in an SQL statement. If the string argument isnull
an SQL NULL token is returned.- Parameters:
string
- a string ornull
- Returns:
- the string in quotes and with proper escape sequences for
special characters, or "NULL" if the string is
null
-
-