D 2018-08-23T16:50:35.582 L Virtual\sTables\s(misc) P 691aa349d03dd9c87bad4bce4606fdec75e4b17f U sandro W 23607 back to main page

List of topics



VirtualShape

The VirtualShape Interface allows to directly access an external ShapeFile by using standard Spatial SQL queries.
Syntax for creating a VirtualShape Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualShape ( shp_path , charset_encoding , srid ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualShape ( shp_path , charset_encoding , srid , text_dates ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualShape ( shp_path , charset_encoding , srid , text_dates , colname_case ); Supported arguments and their interpretation:
  • shp_path (mandatory): the relative or absolute pathname leading to the external Shapefile.
    • Note: any Shapefile requires at least three individual members sharing the same base name but with different suffixes (*.shp, *.shx and *.dbf).
      All suffixes will be automatically handled by VirtualShape, and consequently the shp_path argument must not specify any suffix, just the bare base path must be passed.
  • charset_encoding (mandatory): canonical name of the charset encoding adopted by the DBF member.
    • Examples of valid names are: ASCII, UTF-8, CP850, CP1252, ISO-8849-1
    • You can check the full list of supported charset encodings here.
  • srid (mandatory): the SRID value of all Geometries within the Shapefile.
    • Examples of valid SRID values are: 4326, 3003, 32632
  • text_dates (optional): this is a BOOLEAN flag:
    • if set to 0 (FALSE) all fields of the DATE type will be represented as julian dates
    • if set to any other integer value (TRUE) all fields of the DATE type will be represented as Text Strings as e.g. 2018-08-21
    • if not explicitly specified, TRUE will always be assumed (default setting).
  • colname_case (optional): this argument specifies if all column names should be considered uppercase or lowercase.
    Valid settings are:
    • uppercase or upper: all column names will be fully capitalized.
    • lowercase or lower: all column names will be full lowercase.
    • samecase or same: all column names will be exactly preserved as they are defined into the DBF member.
    • if not specified, or if any other definition definition is found, lowercase will always be assumed (default setting).

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualShape( /home/sandro/myshp , CP1252 , 3003 , 1 , lower ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualShape( '/home/sandro/myshp' , 'CP1252' , 3003 , 1 , 'lower' ); Both notations will produce the same result.

Best practices and known limitations

  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Warning: VirtualShape Tables are always subject to READ-ONLY restrictions. Any attempt to to execute an INSERT, UPDATE or DELETE statement will always return an error.

Related Topics

  • The ImportSHP() SQL function allows to create and populate a genuine Spatial Table by importing an external Shapefile.
  • And the ExportSHP() sister function allows the exportation a whole Spatial Table into an external Shapefile.


VirtualDBF

The VirtualDBF Interface allows to directly access an external DBF table by using standard Spatial SQL queries.
Syntax for creating a VirtualDbf Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualDbf ( dbf_path , charset_encoding ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualDbf ( dbf_path , charset_encoding , text_dates ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualDbf ( dbf_path , charset_encoding , text_dates , colname_case ); Supported arguments and their interpretation:
  • dbf_path (mandatory): the relative or absolute pathname leading to the external DBF file.
    • Note: the full pathname must be passed, including the final *.dbf suffix.
  • charset_encoding (mandatory): canonical name of the charset encoding adopted by the DBF member.
    • Examples of valid names are: ASCII, UTF-8, CP850, CP1252, ISO-8849-1
    • You can check the full list of supported charset encodings here.
  • text_dates (optional): this is a BOOLEAN flag:
    • if set to 0 (FALSE) all fields of the DATE type will be represented as julian dates
    • if set to any other integer value (TRUE) all fields of the DATE type will be represented as Text Strings as e.g. 2018-08-21
    • if not explicitly specified, TRUE will always be assumed (default setting).
  • colname_case (optional): this argument specifies if all column names should be considered uppercase or lowercase.
    Valid settings are:
    • uppercase or upper: all column names will be fully capitalized.
    • lowercase or lower: all column names will be full lowercase.
    • samecase or same: all column names will be exactly preserved as they are defined into the DBF member.
    • if not specified, or if any other definition definition is found, lowercase will always be assumed (default setting).

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualDbf( /home/sandro/myshp , CP1252 , 1 , lower ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualDbf( '/home/sandro/myshp' , 'CP1252' , 1 , 'lower' ); Both notations will produce the same result.

Best practices and known limitations

  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Warning: VirtualDBF Tables are always subject to READ-ONLY restrictions. Any attempt to to execute an INSERT, UPDATE or DELETE statement will always return an error.

Related Topics

  • The ImportDBF() SQL function allows to create and populate a genuine Database Table by importing an external DBF file.
  • And the ExportDBF() sister function allows to directly export a whole Database Table into an external DBF file.


VirtualText

The VirtualText Interface allows to directly access an external Text file by using standard Spatial SQL queries.
The Text File is expected to contain a properly formatted Table accordingly to some Delimiter-Separated-Values format (comma separated values *.csv, tab separated values *.txt and alike).
Syntax for creating a VirtualText Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualText ( textfile_path , charset_encoding ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualText ( textfile_path , charset_encoding , first_row_as_titles ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualText ( textfile_path , charset_encoding , first_row_as_titles , decimal_separator ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualText ( textfile_path , charset_encoding , first_row_as_titles , decimal_separator , text_separator ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualText ( textfile_path , charset_encoding , first_row_as_titles , decimal_separator , text_separator , field_separator ); Supported arguments and their interpretation:
  • textfile_path (mandatory): the relative or absolute pathname leading to the external Text file.
    • Note: the full pathname must be passed, including an eventual final suffix (*.txt, *.csv and alike).
  • charset_encoding (mandatory): canonical name of the charset encoding adopted by the Text file.
    • Examples of valid names are: ASCII, UTF-8, CP850, CP1252, ISO-8849-1
    • You can check the full list of supported charset encodings here.
  • first_row_as_titles (optional): this is a BOOLEAN flag:
    • if set to 0 (FALSE) all column names will be automatically set by using a progressive sequence.
    • if set to any other integer value (TRUE) all column names will by expected to be defined in the very first row of the Text file.
    • if not explicitly specified, TRUE will always be assumed (default setting).
  • decimal_separator (optional): the character acting as a separator between the integer and decimal parts of a number.
    Valid values are any printable character or the special mnemonic notations POINT or COMMA.
    If not explicitly specified, POINT will always be assumed (default setting)
  • text_separator (optional): the character acting as a string delimiter.
    Valid values are any printable character or the special mnemonic notations SINGLEQUOTE, DOUBLEQUOTE or NONE.
    If not explicitly specified, DOUBLEQUOTE will always be assumed (default setting)
  • field_separator (optional): the character acting as a delimiter between consecutive fields.
    Valid values are any printable character or the special mnemonic notations TAB.
    If not explicitly specified, TAB will always be assumed (default setting)

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualText( /home/sandro/myfile.txt , CP1252 , 1 , POINT , NONE , TAB ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualText( '/home/sandro/myfile.txt' , 'CP1252' , 1 , 'POINT' , 'NONE' , 'TAB' ); Both notations will produce the same result.

Best practices and known limitations

  • Be aware: opening big or huge text files could easily require massive RAM allocations.
  • Warning: attempting to access an external Text file by blindly specifying randomly chosen delimiters or separators may easily have catastrophic effects.
    Always carefully check the actual structure of the Text file before attempting to access it.
  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Warning: VirtualText Tables are always subject to READ-ONLY restrictions. Any attempt to to execute an INSERT, UPDATE or DELETE statement will always return an error.


VirtualXL

The VirtualXL Interface allows to directly access an external MS Excel spreadsheet by using standard Spatial SQL queries.
Syntax for creating a VirtualXL Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualXL ( xls_path ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualXL ( xls_path , worksheet_index ); SELECT CREATE VIRTUAL TABLE my_table USING VirtualXL ( xls_path , worksheet_index , first_row_as_titles ); Supported arguments and their interpretation:
  • xls_path (mandatory): the relative or absolute pathname leading to the external MS Excel spreadsheet (old binary format *.xls).
  • worksheet_index (optional): the index identifying one of the worksheets within the Excel document.
    MS Excel may contain more than one worksheet, and each individual worksheet is identified by its own index (zero-based index; the first worksheet always has index=0).
    If not explicitly specified the first worksheet will always be assumed (default value).
  • first_row_as_titles (optional): this is a BOOLEAN flag:
    • if set to 0 (FALSE) all column names will be automatically set by using a progressive sequence.
    • if set to any other integer value (TRUE) all column names will by expected to be defined in the very first row of the Spreadsheet.
    • if not explicitly specified, TRUE will always be assumed (default setting).

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualXL( /home/sandro/myspreadsheet.xls , 3, 1 ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualXL( '/home/sandro/myspreadsheet.xls' , 3, 1 ); Both notations will produce the same result.

Best practices and known limitations

  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Warning: VirtualXL Tables are always subject to READ-ONLY restrictions. Any attempt to to execute an INSERT, UPDATE or DELETE statement will always return an error.

Related Topics

The ImportXLS() SQL function allows to create and populate a genuine Database Table by importing an external MS Excel spreadsheet.


VirtualFDO

The VirtualFDO Interface allows to directly access a Spatial Table containing FDO binary Geometries exactly as if was a SpatiaLite's own native Table.
FDO is an alternative binary format for Geometries stored within a SQLite Database; you can eventually read the RFC 16 specification for more details.
Syntax for creating a VirtualFDO Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualFdo ( table_name ); Supported argument and its interpretation:
  • table_name (mandatory): the name of the Table in the current Database containing one or more FDO Geometry Columns to be automatically translated to/from SpatiaLite's own native binary BLOB-format.

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualFdo( my_parcels ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualFdo( 'my_parcels' ); Both notations will produce the same result.

Best practices and known limitations

  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Note: VirtualFDO Tables support unrestricted READ-WRITE operations, this including executing INSERT, UPDATE and DELETE statements.


VirtualGPKG

The VirtualGPKG Interface allows to directly access Spatial Tables from a GeoPackage Database exactly as if was a SpatiaLite's own native Database.
GeoPackage (aka GPKG) is an alternative Spatial Database built on the top of SQLite; you can eventually read the official specification for more details.
Syntax for creating a VirtualFDO Table: SELECT CREATE VIRTUAL TABLE my_table USING VirtualGpkg ( table_name ); Supported argument and its interpretation:
  • table_name (mandatory): the name of the Table in the current Database containing one or more GPKG Geometry Columns to be automatically translated to/from SpatiaLite's own native binary BLOB-format.

Note: quoting or not any Text String when it appears as a Virtual Table argument has absolutely no effect. SELECT CREATE VIRTUAL TABLE my_table USING VirtualGpks( my_parcels ); or SELECT CREATE VIRTUAL TABLE my_table USING VirtualGpkg( 'my_parcels' ); Both notations will produce the same result.

Best practices and known limitations

  • Virtual Tables are not really genuine Database Tables, they are just emulating the original source as a Database Table.
  • Virtual Tables have very poor speed performances, due to the emulation, as compared to genuine Database Tables.
  • Complex SQL queries JOINing several Tables can often return odd and misleading resultsets, when one or more of the JOINed Tables are of the Virtual type.
  • The best use of a Virtual Table is to preform a basic data import process, or to quickly get an overall glance at a full dataset without necessarily importing it into the Database.
  • Pretending to use a Virtual Table as a full replacement of importing all data within a genuine Database Table is strongly discouraged, and never is a good idea.

Note: VirtualGPKG Tables support unrestricted READ-WRITE operations, this including executing INSERT, UPDATE and DELETE statements.



back to main page Z 82fd72f6b937cf597caf1bad39b42a26