Class Import

All Implemented Interfaces:
AutoCloseable, ResultSet, 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.
  • Field Details

    • _importCounter

      private static int _importCounter
    • _importers

      private static Hashtable<Integer,Import> _importers
    • inputFileName

      private String 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

      private void doImport() throws Exception
      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 table
      schemaName - The name of the schema where table to import exists
      tableName - 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 file
      characterDelimiter - Delimiter that is used to quiote non-numeric types
      codeset - Codeset of the data in the file
      replace - 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 table
      schemaName - The name of the schema where table to import exists
      tableName - 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 file
      characterDelimiter - Delimiter that is used to quiote non-numeric types
      codeset - Codeset of the data in the file
      replace - 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

      ImportReadData getImportReadData() throws Exception
      virtual method from the abstract class
      Specified by:
      getImportReadData in class ImportAbstract
      Throws:
      Exception - on error
    • bumpImportCounter

      private static int bumpImportCounter()
    • formatImportError

      private static SQLException formatImportError(Import importer, String inputFile, Throwable t)
    • quoteStringArgument

      private static String quoteStringArgument(String string)
      Quote a string argument so that it can be used as a literal in an SQL statement. If the string argument is null an SQL NULL token is returned.
      Parameters:
      string - a string or null
      Returns:
      the string in quotes and with proper escape sequences for special characters, or "NULL" if the string is null