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:
AutoCloseable
,ResultSet
,Wrapper
,AwareVTI
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
FieldsFields 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
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
-
Constructor Summary
ConstructorsConstructorDescriptionImport
(String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, int noOfColumnsExpected, String columnTypes, boolean lobsInExtFile, int importCounter, String columnTypeNames, String udtClassNamesString) Constructor to Invoke Import from a select statement -
Method Summary
Modifier and TypeMethodDescriptionprivate static int
private void
doImport()
private static SQLException
formatImportError
(Import importer, String inputFile, Throwable t) (package private) ImportReadData
virtual method from the abstract classstatic void
importData
(Connection connection, String schemaName, String tableName, String insertColumnList, String columnIndexes, String inputFileName, String columnDelimiter, String characterDelimiter, 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
(Connection connection, String schemaName, String tableName, String inputFileName, String columnDelimiter, String characterDelimiter, 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
(Connection connection, String schemaName, String insertColumnList, String columnIndexes, String tableName, String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, short replace, boolean lobsInExtFile) private static String
quoteStringArgument
(String string) Quote a string argument so that it can be used as a literal in an SQL statement.private static String[]
readHeaders
(String inputFileName, String characterDelimiter, String columnDelimiter, 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.sql.ResultSet
updateObject, updateObject, updateObject, updateObject
-
Field Details
-
_importCounter
private static int _importCounter -
_importers
-
inputFileName
-
skip
private static short skip
-
-
Constructor Details
-
Import
public Import(String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, int noOfColumnsExpected, String columnTypes, boolean lobsInExtFile, int importCounter, String columnTypeNames, String udtClassNamesString) throws SQLException Constructor to Invoke Import from a select statement- Parameters:
inputFileName
- The URL of the ASCII file from which import will happen- Throws:
SQLException
- on error
-
-
Method Details
-
doImport
- Throws:
Exception
-
importTable
public static void importTable(Connection connection, String schemaName, String tableName, String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, short replace, boolean lobsInExtFile, short... extraArgs) throws 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:
SQLException
- on errors
-
importData
public static void importData(Connection connection, String schemaName, String tableName, String insertColumnList, String columnIndexes, String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, short replace, boolean lobsInExtFile, short... extraArgs) throws 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:
SQLException
- on errors
-
performImport
private static void performImport(Connection connection, String schemaName, String insertColumnList, String columnIndexes, String tableName, String inputFileName, String columnDelimiter, String characterDelimiter, String codeset, short replace, boolean lobsInExtFile) throws SQLException - Throws:
SQLException
-
readHeaders
private static String[] readHeaders(String inputFileName, String characterDelimiter, String columnDelimiter, String codeset) throws SQLException - Throws:
SQLException
-
getImportReadData
virtual method from the abstract class- Specified by:
getImportReadData
in classImportAbstract
- Throws:
Exception
- on error
-
bumpImportCounter
private static int bumpImportCounter() -
formatImportError
-
quoteStringArgument
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
-