From 19b3fd68c05dd2639d5ee7aa13c94c21bbb7a8be Mon Sep 17 00:00:00 2001 From: Cal Mitchell <33095819+calmitchell617@users.noreply.github.com> Date: Sun, 17 Nov 2024 15:57:28 +0000 Subject: [PATCH 1/7] starting to add incremental --- cmd/sqlpipe/routes.go | 1 - cmd/sqlpipe/systems.go | 46 +++++++++++ cmd/sqlpipe/transfers.go | 173 +++++++++++++++++++++++++++++++++++++-- docker-compose.yml | 56 ++++++++----- 4 files changed, 249 insertions(+), 27 deletions(-) diff --git a/cmd/sqlpipe/routes.go b/cmd/sqlpipe/routes.go index eddca7a0..8bfc4ea6 100644 --- a/cmd/sqlpipe/routes.go +++ b/cmd/sqlpipe/routes.go @@ -10,7 +10,6 @@ import ( func routes() http.Handler { router := httprouter.New() - // SQLpipe router.NotFound = http.HandlerFunc(notFoundResponse) router.MethodNotAllowed = http.HandlerFunc(methodNotAllowedResponse) diff --git a/cmd/sqlpipe/systems.go b/cmd/sqlpipe/systems.go index 8ad79407..3bf7feaa 100644 --- a/cmd/sqlpipe/systems.go +++ b/cmd/sqlpipe/systems.go @@ -968,6 +968,52 @@ func dropTableIfExists(schema, table string, system System) (err error) { return nil } +func getIncrementalTime(schema, table, incrementalColumn string, initialLoad bool, system System) (bool, time.Time, error) { + + incrementalTime, overridden, initialLoad, err := system.getIncrementalTimeOverride(schema, table, incrementalColumn, initialLoad) + if overridden { + return initialLoad, incrementalTime, err + } + + escapedSchemaPeriodTable := getSchemaPeriodTable(schema, table, system, true) + + query := fmt.Sprintf("select max(%v) from %v", escapeIfNeeded(incrementalColumn, system), escapedSchemaPeriodTable) + + rows, err := system.query(query) + if err != nil { + if !system.IsTableNotFoundError(err) { + return initialLoad, incrementalTime, fmt.Errorf("error getting max %v :: %v", incrementalColumn, err) + } + return initialLoad, incrementalTime, nil + } + defer rows.Close() + + columnInfos, err := getQueryColumnInfos(rows, system) + if err != nil { + return initialLoad, incrementalTime, fmt.Errorf("error getting column info :: %v", err) + } + + if !permittedValue(columnInfos[0].PipeType, "datetime", "datetimetz", "date") { + return initialLoad, incrementalTime, fmt.Errorf("column %v is unsupported pipe type %v", incrementalColumn, columnInfos[0].PipeType) + } + + for rows.Next() { + err := rows.Scan(&incrementalTime) + if err != nil { + if !strings.Contains(err.Error(), "storing driver.Value type ") { + return initialLoad, incrementalTime, fmt.Errorf("error scanning max %v :: %v", incrementalColumn, err) + } + return initialLoad, incrementalTime, nil + } + } + + if !incrementalTime.IsZero() { + initialLoad = false + } + + return initialLoad, incrementalTime, nil +} + func deletePks(pipeFilesIn <-chan PipeFileInfo, columnInfos []ColumnInfo, transfer Transfer, target System, incremental, initialLoad bool) <-chan PipeFileInfo { if initialLoad || !incremental { return pipeFilesIn diff --git a/cmd/sqlpipe/transfers.go b/cmd/sqlpipe/transfers.go index 54264441..3abe85eb 100644 --- a/cmd/sqlpipe/transfers.go +++ b/cmd/sqlpipe/transfers.go @@ -50,6 +50,8 @@ type Transfer struct { Delimiter string `json:"delimiter"` Newline string `json:"newline"` Null string `json:"null"` + IncrementalColumn string `json:"incremental-column,omitempty"` + Vacuum bool `json:"vacuum"` } var transferMap = NewSafeTransferMap() @@ -121,8 +123,8 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { TargetUsername string `json:"target-username"` TargetPassword string `json:"target-password"` DropTargetTableIfExists bool `json:"drop-target-table-if-exists"` - CreateTargetSchemaIfNotExists bool `json:"create-target-schema-if-not-exists"` CreateTargetTableIfNotExists bool `json:"create-target-table-if-not-exists"` + CreateTargetSchemaIfNotExists bool `json:"create-target-schema-if-not-exists"` SourceSchema string `json:"source-schema"` SourceTable string `json:"source-table"` TargetSchema string `json:"target-schema"` @@ -131,6 +133,8 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { Delimiter string `json:"delimiter"` Newline string `json:"newline"` Null string `json:"null"` + IncrementalColumn string `json:"incremental-column"` + Vacuum bool `json:"vacuum"` } err := readJSON(w, r, &input) @@ -202,6 +206,8 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { TargetSchema: input.TargetSchema, TargetTable: input.TargetTable, Query: input.Query, + IncrementalColumn: input.IncrementalColumn, + Vacuum: input.Vacuum, } v := newValidator() @@ -226,16 +232,33 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { } else { v.check(transfer.SourceSchema == "", "source-schema", "must not be provided if query is provided") v.check(transfer.SourceTable == "", "source-table", "must not be provided if query is provided") + v.check(!transfer.Vacuum, "vacuum", "must not be true if query is provided") } if transfer.SourceSchema == "" && transfer.SourceTable == "" { v.check(transfer.Query != "", "query", "must be provided if source-schema and source-table are not provided") } + if transfer.Vacuum { + v.check(transfer.Query == "", "query", "must not be provided if vacuum is true") + v.check(transfer.SourceSchema != "", "source-schema", "must be provided if vacuum is true") + v.check(transfer.SourceTable != "", "source-table", "must be provided if vacuum is true") + v.check(transfer.IncrementalColumn == "", "incremental-column", "must not be provided if vacuum is true") + v.check(!transfer.CreateTargetTableIfNotExists, "create-target-table-if-not-exists", "must not be true if vacuum is true") + v.check(!transfer.DropTargetTableIfExists, "drop-target-table-if-exists", "must not be true if vacuum is true") + } + if transfer.SourceSchema != "" || transfer.SourceTable != "" { v.check(transfer.Query == "", "query", "must not be provided if source-schema or source-table are provided") } + if transfer.IncrementalColumn != "" { + if schemaRequired[transfer.SourceConnectionInfo.Type] { + v.check(transfer.SourceSchema != "", "source-schema", fmt.Sprintf("must be provided for source type %v if incremental-column is provided", transfer.TargetConnectionInfo.Type)) + } + v.check(transfer.SourceTable != "", "source-table", "must be provided if incremental-column is provided") + } + v.check(transfer.TargetTable != "", "target-table", "must be provided") if schemaRequired[transfer.TargetConnectionInfo.Type] { v.check(transfer.TargetSchema != "", "target-schema", fmt.Sprintf("must be provided for target type %v", transfer.TargetConnectionInfo.Type)) @@ -268,7 +291,6 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { v.check(transfer.TargetConnectionInfo.Username != "", "target-username", "must be provided for target type oracle") v.check(transfer.TargetConnectionInfo.Password != "", "target-password", "must be provided for target type oracle") v.check(transfer.TargetConnectionInfo.Database != "", "target-database", "must be provided for target type oracle") - case TypeSnowflake: } if !v.valid() { @@ -424,8 +446,11 @@ func runTransfer(transfer Transfer) (err error) { escapedSourceSchemaPeriodTable := getSchemaPeriodTable(transfer.SourceSchema, transfer.SourceTable, source, true) query := transfer.Query + incremental := false initialLoad := true + var incrementalTime time.Time var columnInfos []ColumnInfo + var incrementalColumnInfo ColumnInfo if transfer.SourceTable != "" { @@ -433,8 +458,108 @@ func runTransfer(transfer Transfer) (err error) { if err != nil { return fmt.Errorf("error getting source table column infos :: %v", err) } - query = fmt.Sprintf(`SELECT * FROM %v`, escapedSourceSchemaPeriodTable) + if transfer.IncrementalColumn != "" { + incremental = true + + // check for existence of incremental column in columnInfos + var found bool + for _, columnInfo := range columnInfos { + if strings.EqualFold(columnInfo.Name, transfer.IncrementalColumn) { + found = true + incrementalColumnInfo = columnInfo + break + } + } + if !found { + return fmt.Errorf("incremental column %v not found in source table %v", transfer.IncrementalColumn, transfer.SourceTable) + } + + initialLoad, incrementalTime, err = getIncrementalTime(transfer.TargetSchema, transfer.TargetTable, transfer.IncrementalColumn, initialLoad, target) + if err != nil { + return fmt.Errorf("error getting incremental time :: %v", err) + } + } + + if initialLoad { + query = fmt.Sprintf(`SELECT * FROM %v`, escapedSourceSchemaPeriodTable) + } else { + + sqlFormatters := source.getSqlFormatters() + + timeStringVal, err := sqlFormatters[incrementalColumnInfo.PipeType](incrementalTime.Format(time.RFC3339Nano)) + if err != nil { + return fmt.Errorf("error formatting incremental time :: %v", err) + } + + query = fmt.Sprintf(`SELECT * FROM %v WHERE %v > %v`, escapedSourceSchemaPeriodTable, transfer.IncrementalColumn, timeStringVal) + } + } + + vacuumTableName := "" + schemaPeriodVacuumTableName := "" + + if transfer.Vacuum { + + randomLetters, err := RandomLetters(16) + if err != nil { + return fmt.Errorf("error generating random letters :: %v", err) + } + + vacuumTableName = fmt.Sprintf("sqlpipe_vacuum_%v_%v", randomLetters, transfer.TargetTable) + + // shorten vacuum table name to 64 chars if necessary + if len(vacuumTableName) > 64 { + vacuumTableName = vacuumTableName[:64] + } + + schemaPeriodVacuumTableName = getSchemaPeriodTable(transfer.TargetSchema, vacuumTableName, target, true) + + columnInfos, err = getTableColumnInfos(transfer.SourceSchema, transfer.SourceTable, source) + if err != nil { + return fmt.Errorf("error getting source table column infos :: %v", err) + } + + pkColumnInfos := []ColumnInfo{} + + for _, columnInfo := range columnInfos { + if columnInfo.IsPrimaryKey { + pkColumnInfos = append(pkColumnInfos, columnInfo) + } + } + + columnInfos = pkColumnInfos + + err = createTableIfNotExists(transfer.TargetSchema, vacuumTableName, columnInfos, target, incremental) + if err != nil { + return fmt.Errorf("error creating target table :: %v", err) + } + + if !transfer.KeepFiles { + defer func() { + err = dropTableIfExists(transfer.TargetSchema, vacuumTableName, target) + if err != nil { + errorLog.Printf("error dropping vacuum table %v :: %v", vacuumTableName, err) + return + } + infoLog.Printf("vacuum table %v dropped", vacuumTableName) + }() + } + + queryBuilder := strings.Builder{} + + queryBuilder.WriteString("select ") + + for i, columnInfo := range columnInfos { + if i != 0 { + queryBuilder.WriteString(", ") + } + queryBuilder.WriteString(columnInfo.Name) + } + + queryBuilder.WriteString(fmt.Sprintf(" from %v", escapedSourceSchemaPeriodTable)) + + query = queryBuilder.String() } rows, err := source.query(query) @@ -457,15 +582,53 @@ func runTransfer(transfer Transfer) (err error) { } } - newPipeFiles := createPipeFiles(columnInfos, transfer, rows, source, target, false) + newPipeFiles := createPipeFiles(columnInfos, transfer, rows, source, target, incremental) - pksProcessedPipeFiles := deletePks(newPipeFiles, columnInfos, transfer, target, false, initialLoad) + pksProcessedPipeFiles := deletePks(newPipeFiles, columnInfos, transfer, target, incremental, initialLoad) err = insertPipeFiles(pksProcessedPipeFiles, transfer, columnInfos, target, "") if err != nil { return fmt.Errorf("error inserting pipe files :: %v", err) } + if transfer.Vacuum { + + escapedTargetSchemaPeriodTable := getSchemaPeriodTable(transfer.TargetSchema, transfer.TargetTable, target, true) + + queryBuilder := strings.Builder{} + + queryBuilder.WriteString(`DELETE FROM `) + queryBuilder.WriteString(escapedTargetSchemaPeriodTable) + queryBuilder.WriteString(` where (`) + for i, columnInfo := range columnInfos { + escapedColumnName := escapeIfNeeded(columnInfo.Name, target) + if i != 0 { + queryBuilder.WriteString(", ") + } + + queryBuilder.WriteString(escapedColumnName) + } + queryBuilder.WriteString(`) not in (select `) + for i, columnInfo := range columnInfos { + escapedColumnName := escapeIfNeeded(columnInfo.Name, target) + if i != 0 { + queryBuilder.WriteString(", ") + } + + queryBuilder.WriteString(escapedColumnName) + } + queryBuilder.WriteString(` from `) + queryBuilder.WriteString(schemaPeriodVacuumTableName) + queryBuilder.WriteString(`)`) + + query = queryBuilder.String() + + err = target.exec(query) + if err != nil { + return fmt.Errorf("error vacuuming target table :: %v", err) + } + } + transferMap.SetStatus(transfer.Id, StatusComplete, transfer) infoLog.Printf("transfer %v complete", transfer.Id) diff --git a/docker-compose.yml b/docker-compose.yml index da6e9586..8a65028d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,7 +12,7 @@ services: deploy: resources: limits: - memory: 8G + memory: 1G mssql: image: mcr.microsoft.com/mssql/server @@ -20,7 +20,7 @@ services: environment: ACCEPT_EULA: Y SA_PASSWORD: Mypass123 - platform: linux/amd64 + # platform: linux/amd64 volumes: - ./setup-sql/mssql.sql:/setup.sql command: > @@ -36,11 +36,11 @@ services: deploy: resources: limits: - memory: 16G + memory: 4G postgresql: image: postgres - platform: linux/amd64 + # platform: linux/amd64 container_name: postgresql ports: - 5432:5432 @@ -52,11 +52,11 @@ services: deploy: resources: limits: - memory: 16G + memory: 1G mysql: image: mysql:8.0 - platform: linux/amd64 + # platform: linux/amd64 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=Mypass123 @@ -67,21 +67,35 @@ services: deploy: resources: limits: - memory: 8G + memory: 2G command: --local-infile=1 + # Oracle service (label used to access the service container) + oracle: + container_name: oracle + # Docker Hub image (feel free to change the tag "latest" to any other available one) + image: gvenzl/oracle-free:latest + environment: + ORACLE_PASSWORD: Mypass123 + NLS_CHARACTERSET: AL32UTF8 + APP_USER: admin + APP_USER_PASSWORD: Mypass123 + ports: + - 1521:1521 + - # oracle: - # image: sqlpipe/oracle:21.3.0 - # container_name: oracle - # ports: - # - "1521:1521" - # environment: - # - ORACLE_PWD=Mypass123 - # - NLS_CHARACTERSET=AL32UTF8 - # volumes: - # - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql - # deploy: - # resources: - # limits: - # memory: 16G \ No newline at end of file +# oracle: +# image: sqlpipe/oracle:21.3.0 +# platform: linux/amd64 +# container_name: oracle +# ports: +# - "1521:1521" +# environment: +# - ORACLE_PWD=Mypass123 +# - NLS_CHARACTERSET=AL32UTF8 +# volumes: +# - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql +# deploy: +# resources: +# limits: +# memory: 16G From 09f5da64f942ed3cfe5128997b01c5fae513f83a Mon Sep 17 00:00:00 2001 From: Cal Mitchell <33095819+calmitchell617@users.noreply.github.com> Date: Sun, 17 Nov 2024 16:00:02 +0000 Subject: [PATCH 2/7] fixed some static analysis warnings --- cmd/sqlpipe/errors.go | 8 ++++---- cmd/sqlpipe/main.go | 1 - cmd/sqlpipe/system_snowflake.go | 3 +-- cmd/sqlpipe/systems.go | 1 - cmd/sqlpipe/transfers.go | 10 +++++----- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/cmd/sqlpipe/errors.go b/cmd/sqlpipe/errors.go index afd637e5..24e7e52c 100644 --- a/cmd/sqlpipe/errors.go +++ b/cmd/sqlpipe/errors.go @@ -6,7 +6,7 @@ import ( "net/http" ) -func clientErrorResponse(w http.ResponseWriter, r *http.Request, status int, err error) { +func clientErrorResponse(w http.ResponseWriter, status int, err error) { env := envelope{"error": err.Error()} err = writeJSON(w, status, env, nil) @@ -30,15 +30,15 @@ func serverErrorResponse(w http.ResponseWriter, r *http.Request, status int, err func notFoundResponse(w http.ResponseWriter, r *http.Request) { err := errors.New("the requested resource could not be found") - clientErrorResponse(w, r, http.StatusNotFound, err) + clientErrorResponse(w, http.StatusNotFound, err) } func methodNotAllowedResponse(w http.ResponseWriter, r *http.Request) { err := fmt.Errorf("the %v method is not supported for this resource", r.Method) - clientErrorResponse(w, r, http.StatusMethodNotAllowed, err) + clientErrorResponse(w, http.StatusMethodNotAllowed, err) } -func failedValidationResponse(w http.ResponseWriter, r *http.Request, errors map[string]string) { +func failedValidationResponse(w http.ResponseWriter, errors map[string]string) { env := envelope{"error": errors} err := writeJSON(w, http.StatusUnprocessableEntity, env, nil) diff --git a/cmd/sqlpipe/main.go b/cmd/sqlpipe/main.go index 0194eda6..0d6672fe 100644 --- a/cmd/sqlpipe/main.go +++ b/cmd/sqlpipe/main.go @@ -15,7 +15,6 @@ import ( _ "github.com/jackc/pgx/v5/stdlib" _ "github.com/microsoft/go-mssqldb" _ "github.com/sijms/go-ora/v2" - _ "github.com/snowflakedb/gosnowflake" ) var ( diff --git a/cmd/sqlpipe/system_snowflake.go b/cmd/sqlpipe/system_snowflake.go index 4ea2a938..98902846 100644 --- a/cmd/sqlpipe/system_snowflake.go +++ b/cmd/sqlpipe/system_snowflake.go @@ -298,7 +298,7 @@ func (system Snowflake) insertPipeFilesOverride(columnInfos []ColumnInfo, transf finalCsvChannel := convertPipeFiles(pipeFileInfoChannel, columnInfos, transfer, system) - putCsvsChannel := system.putCsvs(finalCsvChannel, columnInfos, transfer) + putCsvsChannel := system.putCsvs(finalCsvChannel, transfer) err = insertFinalCsvs(putCsvsChannel, transfer, system, transfer.TargetSchema, table) if err != nil { @@ -319,7 +319,6 @@ func (system Snowflake) convertPipeFilesOverride(pipeFilePath <-chan PipeFileInf func (system Snowflake) putCsvs( finalCsvChannelIn <-chan FinalCsvInfo, - columnInfo []ColumnInfo, transfer Transfer, ) <-chan FinalCsvInfo { diff --git a/cmd/sqlpipe/systems.go b/cmd/sqlpipe/systems.go index 3bf7feaa..efd2f804 100644 --- a/cmd/sqlpipe/systems.go +++ b/cmd/sqlpipe/systems.go @@ -330,7 +330,6 @@ func createPipeFiles( transfer Transfer, rows *sql.Rows, source System, - target System, incremental bool, ) <-chan PipeFileInfo { diff --git a/cmd/sqlpipe/transfers.go b/cmd/sqlpipe/transfers.go index 3abe85eb..0bcc360f 100644 --- a/cmd/sqlpipe/transfers.go +++ b/cmd/sqlpipe/transfers.go @@ -139,7 +139,7 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { err := readJSON(w, r, &input) if err != nil { - clientErrorResponse(w, r, http.StatusBadRequest, err) + clientErrorResponse(w, http.StatusBadRequest, err) return } @@ -294,7 +294,7 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { } if !v.valid() { - failedValidationResponse(w, r, v.errors) + failedValidationResponse(w, v.errors) return } @@ -365,7 +365,7 @@ func listTransfersHandler(w http.ResponseWriter, r *http.Request) { ) if !v.valid() { - failedValidationResponse(w, r, v.errors) + failedValidationResponse(w, v.errors) return } @@ -399,7 +399,7 @@ func cancelTransferHandler(w http.ResponseWriter, r *http.Request) { } if transfer.Status != StatusRunning { - clientErrorResponse(w, r, http.StatusBadRequest, + clientErrorResponse(w, http.StatusBadRequest, fmt.Errorf("cannot cancel transfer with status of %v", transfer.Status), ) return @@ -582,7 +582,7 @@ func runTransfer(transfer Transfer) (err error) { } } - newPipeFiles := createPipeFiles(columnInfos, transfer, rows, source, target, incremental) + newPipeFiles := createPipeFiles(columnInfos, transfer, rows, source, incremental) pksProcessedPipeFiles := deletePks(newPipeFiles, columnInfos, transfer, target, incremental, initialLoad) From ee4ac57db7973048037aa77aed14656f9bd37cf3 Mon Sep 17 00:00:00 2001 From: Cal Mitchell <33095819+calmitchell617@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:35:41 +0000 Subject: [PATCH 3/7] setup script --- Makefile | 32 +++- cmd/sqlpipe/transfers.go | 7 +- cmd/tests/main.go | 168 +++++++++++++++++ cmd/tests/mssqlSetup.go | 210 +++++++++++++++++++++ cmd/tests/mysqlSetup.go | 208 +++++++++++++++++++++ cmd/tests/oracleSetup.go | 122 ++++++++++++ cmd/tests/postgresqlSetup.go | 352 +++++++++++++++++++++++++++++++++++ docker-compose.yml | 77 ++++---- setup-sql/oracle.sql | 322 ++++++++++++++++++++------------ 9 files changed, 1345 insertions(+), 153 deletions(-) create mode 100644 cmd/tests/main.go create mode 100644 cmd/tests/mssqlSetup.go create mode 100644 cmd/tests/mysqlSetup.go create mode 100644 cmd/tests/oracleSetup.go create mode 100644 cmd/tests/postgresqlSetup.go diff --git a/Makefile b/Makefile index 8bb5b5d4..254880d2 100644 --- a/Makefile +++ b/Makefile @@ -22,19 +22,19 @@ confirm: .PHONY: sqlpipe sqlpipe: build/sqlpipe docker rm -f sqlpipe - docker-compose up --build -d sqlpipe - docker-compose logs -f sqlpipe + docker compose up --build -d sqlpipe + docker compose logs -f sqlpipe .PHONY: run run: build/sqlpipe ./bin/sqlpipe -## compose-reset: run docker-compose +## compose-reset: run docker compose .PHONY: compose compose: build/sqlpipe - docker-compose down -v - docker-compose up --build -d - docker-compose logs -f + docker compose down -v + docker compose up --build -d + docker compose logs -f ## postgresql: run postgresql .PHONY: postgresql @@ -112,3 +112,23 @@ build/docker: docker buildx build --platform linux/amd64 -t sqlpipe/sqlpipe:latest -f sqlpipe.dockerfile . --load @echo 'Pushing docker image...' docker push sqlpipe/sqlpipe:latest + + +# ==================================================================================== # +# TESTS +# ==================================================================================== # + +## build/tests: build the cmd/tests application +.PHONY: build/tests +build/tests: + @echo 'Building cmd/tests...' + # GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o=./bin/tests ./cmd/tests + go build -ldflags="-w -s" -o=./bin/tests ./cmd/tests + +.PHONY: tests +tests: build/tests + ./bin/tests -postgresql-host=${POSTGRESQL_HOST} -postgresql-user=${POSTGRESQL_USER} -postgresql-password=${POSTGRESQL_PASSWORD} -postgresql-db=${POSTGRESQL_DB} -postgresql-port=${POSTGRESQL_PORT} \ + -mysql-host=${MYSQL_HOST} -mysql-user=${MYSQL_USER} -mysql-password=${MYSQL_PASSWORD} -mysql-db=${MYSQL_DB} -mysql-port=${MYSQL_PORT} \ + -mssql-host=${MSSQL_HOST} -mssql-user=${MSSQL_USER} -mssql-password=${MSSQL_PASSWORD} -mssql-db=${MSSQL_DB} -mssql-port=${MSSQL_PORT} \ + -oracle-host=${ORACLE_HOST} -oracle-user=${ORACLE_USER} -oracle-password=${ORACLE_PASSWORD} -oracle-db=${ORACLE_DB} -oracle-port=${ORACLE_PORT} \ + -snowflake-account=${SNOWFLAKE_ACCOUNT} -snowflake-user=${SNOWFLAKE_USER} -snowflake-password=${SNOWFLAKE_PASSWORD} -snowflake-db=${SNOWFLAKE_DB} \ No newline at end of file diff --git a/cmd/sqlpipe/transfers.go b/cmd/sqlpipe/transfers.go index 0bcc360f..ab7da65a 100644 --- a/cmd/sqlpipe/transfers.go +++ b/cmd/sqlpipe/transfers.go @@ -535,6 +535,11 @@ func runTransfer(transfer Transfer) (err error) { return fmt.Errorf("error creating target table :: %v", err) } + err = source.exec(fmt.Sprintf(`DELETE FROM %v`, schemaPeriodVacuumTableName)) + if err != nil { + return fmt.Errorf("error deleting rows from source table :: %v", err) + } + if !transfer.KeepFiles { defer func() { err = dropTableIfExists(transfer.TargetSchema, vacuumTableName, target) @@ -576,7 +581,7 @@ func runTransfer(transfer Transfer) (err error) { } if transfer.CreateTargetTableIfNotExists { - err = createTableIfNotExists(transfer.TargetSchema, transfer.TargetTable, columnInfos, target, false) + err = createTableIfNotExists(transfer.TargetSchema, transfer.TargetTable, columnInfos, target, incremental) if err != nil { return fmt.Errorf("error creating target table :: %v", err) } diff --git a/cmd/tests/main.go b/cmd/tests/main.go new file mode 100644 index 00000000..cae3dea7 --- /dev/null +++ b/cmd/tests/main.go @@ -0,0 +1,168 @@ +package main + +import ( + "database/sql" + "flag" + "fmt" + "log/slog" + "os" + + _ "github.com/go-sql-driver/mysql" + _ "github.com/jackc/pgx/v5/stdlib" + _ "github.com/microsoft/go-mssqldb" + go_ora "github.com/sijms/go-ora/v2" + _ "github.com/snowflakedb/gosnowflake" +) + +var postgresqlDB *sql.DB +var mysqlDB *sql.DB +var mssqlDB *sql.DB +var oracleDB *sql.DB +var snowflakeDB *sql.DB +var logger *slog.Logger + +var postgresqlHost string +var postgresqlPort int +var postgresqlUser string +var postgresqlPassword string +var postgresqlDBName string + +var mysqlHost string +var mysqlPort int +var mysqlUser string +var mysqlPassword string +var mysqlDBName string + +var mssqlHost string +var mssqlPort int +var mssqlUser string +var mssqlPassword string +var mssqlDBName string + +var oracleHost string +var oraclePort int +var oracleUser string +var oraclePassword string +var oracleDBName string + +var snowflakeAccount string +var snowflakeUser string +var snowflakePassword string +var snowflakeDBName string + +func main() { + + flag.StringVar(&postgresqlHost, "postgresql-host", "", "PostgreSQL host") + flag.IntVar(&postgresqlPort, "postgresql-port", 0, "PostgreSQL port") + flag.StringVar(&postgresqlUser, "postgresql-user", "", "PostgreSQL user") + flag.StringVar(&postgresqlPassword, "postgresql-password", "", "PostgreSQL password") + flag.StringVar(&postgresqlDBName, "postgresql-db", "", "PostgreSQL database") + + flag.StringVar(&mysqlHost, "mysql-host", "", "MySQL host") + flag.IntVar(&mysqlPort, "mysql-port", 0, "MySQL port") + flag.StringVar(&mysqlUser, "mysql-user", "", "MySQL user") + flag.StringVar(&mysqlPassword, "mysql-password", "", "MySQL password") + flag.StringVar(&mysqlDBName, "mysql-db", "", "MySQL database") + + flag.StringVar(&mssqlHost, "mssql-host", "", "SQL Server host") + flag.IntVar(&mssqlPort, "mssql-port", 0, "SQL Server port") + flag.StringVar(&mssqlUser, "mssql-user", "", "SQL Server user") + flag.StringVar(&mssqlPassword, "mssql-password", "", "SQL Server password") + flag.StringVar(&mssqlDBName, "mssql-db", "", "SQL Server database") + + flag.StringVar(&oracleHost, "oracle-host", "", "Oracle host") + flag.IntVar(&oraclePort, "oracle-port", 0, "Oracle port") + flag.StringVar(&oracleUser, "oracle-user", "", "Oracle user") + flag.StringVar(&oraclePassword, "oracle-password", "", "Oracle password") + flag.StringVar(&oracleDBName, "oracle-db", "", "Oracle database") + + flag.StringVar(&snowflakeAccount, "snowflake-account", "", "Snowflake account") + flag.StringVar(&snowflakeUser, "snowflake-user", "", "Snowflake user") + flag.StringVar(&snowflakePassword, "snowflake-password", "", "Snowflake password") + flag.StringVar(&snowflakeDBName, "snowflake-db", "", "Snowflake database") + + flag.Parse() + + logger = slog.New(slog.NewTextHandler(os.Stdout, nil)) + + var err error + + postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=%s sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword, postgresqlDBName)) + if err != nil { + logger.Info(fmt.Sprintf("error connecting to PostgreSQL :: %v", err)) + + } + + err = postgresqlDB.Ping() + if err != nil { + logger.Info(fmt.Sprintf("Error connecting to PostgreSQL :: %v", err)) + } + + mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/%s", mysqlUser, mysqlPassword, mysqlHost, mysqlPort, mysqlDBName)) + if err != nil { + logger.Info(fmt.Sprintf("error connecting to MySQL :: %v", err)) + } + + err = mysqlDB.Ping() + if err != nil { + logger.Info(fmt.Sprintf("Error connecting to MySQL :: %v", err)) + } + + mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=%s", mssqlHost, mssqlUser, mssqlPassword, mssqlPort, mssqlDBName)) + if err != nil { + logger.Info(fmt.Sprintf("error connecting to SQL Server :: %v", err)) + } + + err = mssqlDB.Ping() + if err != nil { + logger.Info(fmt.Sprintf("Error connecting to SQL Server :: %v", err)) + } + + urlOptions := map[string]string{ + "dba privilege": "sysdba", + } + + connStr := go_ora.BuildUrl(oracleHost, oraclePort, oracleDBName, oracleUser, oraclePassword, urlOptions) + + oracleDB, err = sql.Open("oracle", connStr) + if err != nil { + logger.Info(fmt.Sprintf("error connecting to Oracle :: %v", err)) + } + + err = oracleDB.Ping() + if err != nil { + logger.Info(fmt.Sprintf("Error connecting to Oracle :: %v", err)) + } + + snowflakeDB, err = sql.Open("snowflake", fmt.Sprintf("%s:%s@%s/%s", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName)) + if err != nil { + logger.Info(fmt.Sprintf("error connecting to Snowflake :: %v", err)) + } + + err = snowflakeDB.Ping() + if err != nil { + logger.Info(fmt.Sprintf("Error connecting to Snowflake :: %v", err)) + } + + logger.Info("All connections successful") + + err = setupPostgreSQL() + if err != nil { + logger.Info(fmt.Sprintf("error setting up PostgreSQL :: %v", err)) + } + + err = setupMySQL() + if err != nil { + logger.Info(fmt.Sprintf("error setting up MySQL :: %v", err)) + } + + err = setupMssql() + if err != nil { + logger.Info(fmt.Sprintf("error setting up SQL Server :: %v", err)) + } + + err = setupOracle() + if err != nil { + logger.Info(fmt.Sprintf("error setting up Oracle :: %v", err)) + } +} diff --git a/cmd/tests/mssqlSetup.go b/cmd/tests/mssqlSetup.go new file mode 100644 index 00000000..8071bae1 --- /dev/null +++ b/cmd/tests/mssqlSetup.go @@ -0,0 +1,210 @@ +package main + +import ( + "context" + "database/sql" + "fmt" + "time" +) + +func setupMssql() error { + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err := mssqlDB.ExecContext(ctx, "DROP DATABASE mydb") + if err != nil { + logger.Warn(fmt.Sprintf("error dropping mydb in mssql :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = mssqlDB.ExecContext(ctx, "CREATE DATABASE mydb") + if err != nil { + return fmt.Errorf("error creating database :: %v", err) + } + + mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=mydb", mssqlHost, mssqlUser, mssqlPassword, mssqlPort)) + if err != nil { + return fmt.Errorf("error creating mssql connection pool :: %v", err) + } + + err = mssqlDB.Ping() + if err != nil { + return fmt.Errorf("error pinging mssql :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = mssqlDB.ExecContext(ctx, ` +CREATE TABLE my_table ( + my_id bigINT IDENTITY(1,1) PRIMARY KEY, + my_nchar NCHAR(4), + my_char CHAR(4), + my_nvarchar_max NVARCHAR(MAX), + my_nvarchar NVARCHAR(50), + my_varchar_max VARCHAR(MAX), + my_varchar VARCHAR(50), + my_empty_varchar VARCHAR(50), + my_bigint BIGINT, + my_int INT, + my_smallint SMALLINT, + my_tinyint TINYINT, + my_float FLOAT, + my_real REAL, + my_decimal DECIMAL(10, 5), + my_money MONEY, + my_smallmoney SMALLMONEY, + my_datetime2 DATETIME2, + my_datetime DATETIME, + my_smalldatetime SMALLDATETIME, + my_datetimeoffset DATETIMEOFFSET, + my_date DATE, + my_time TIME, + my_binary BINARY(50), + my_varbinary VARBINARY(MAX), + my_bit BIT, + my_uniqueidentifier UNIQUEIDENTIFIER, + my_xml XML, + my_timestamp TIMESTAMP, + last_modified DATETIME DEFAULT GETDATE() +)`) + if err != nil { + return fmt.Errorf("error creating my_table :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = mssqlDB.ExecContext(ctx, ` +CREATE TRIGGER tr_my_table_last_modified +ON my_table +AFTER UPDATE +AS +BEGIN + UPDATE my_table + SET last_modified = GETDATE() + WHERE my_id IN (SELECT DISTINCT my_id FROM inserted) +END`) + if err != nil { + return fmt.Errorf("error creating tr_my_table_last_modified function :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + for i := 0; i < 10; i++ { + _, err = mssqlDB.ExecContext(ctx, ` +INSERT INTO my_table (my_nchar, my_char, my_nvarchar_max, my_nvarchar, my_varchar_max, my_varchar, my_empty_varchar, my_bigint, my_int, my_smallint, my_tinyint, my_float, my_real, my_decimal, my_money, my_smallmoney, my_datetime2, my_datetime, my_smalldatetime, my_datetimeoffset, my_date, my_time, my_binary, my_varbinary, my_bit, my_uniqueidentifier, my_xml) +VALUES +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), +(N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data');`) + if err != nil { + return fmt.Errorf("failed to insert data: %w", err) + } + } + + logger.Info("mssql setup successful") + + return nil +} diff --git a/cmd/tests/mysqlSetup.go b/cmd/tests/mysqlSetup.go new file mode 100644 index 00000000..5f0420dc --- /dev/null +++ b/cmd/tests/mysqlSetup.go @@ -0,0 +1,208 @@ +package main + +import ( + "context" + "database/sql" + "fmt" + "time" +) + +func setupMySQL() error { + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err := mysqlDB.ExecContext(ctx, "DROP DATABASE mydb") + if err != nil { + logger.Warn(fmt.Sprintf("error dropping mydb in mysql :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = mysqlDB.ExecContext(ctx, "CREATE DATABASE mydb") + if err != nil { + return fmt.Errorf("error creating database :: %v", err) + } + + mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/%s", mysqlUser, mysqlPassword, mysqlHost, mysqlPort, "mydb")) + if err != nil { + return fmt.Errorf("error creating mysql connection pool :: %v", err) + } + + err = mysqlDB.Ping() + if err != nil { + return fmt.Errorf("error pinging mysql :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = mysqlDB.ExecContext(ctx, ` +CREATE TABLE my_table ( + my_id BIGINT AUTO_INCREMENT PRIMARY KEY, + my_char CHAR(10), + my_varchar VARCHAR(255), + my_longtext LONGTEXT, + my_mediumtext MEDIUMTEXT, + my_text TEXT, + my_tinytext TINYTEXT, + my_enum ENUM('value1', 'value2'), + my_unsigned_bigint BIGINT UNSIGNED, + my_bigint BIGINT, + my_unsigned_int INT UNSIGNED, + my_int INT, + my_unsigned_mediumint MEDIUMINT UNSIGNED, + my_mediumint MEDIUMINT, + my_unsigned_smallint SMALLINT UNSIGNED, + my_smallint SMALLINT, + my_unsigned_tinyint TINYINT UNSIGNED, + my_tinyint TINYINT, + my_double DOUBLE, + my_float FLOAT, + my_decimal DECIMAL(18, 5), + my_datetime DATETIME(6), + my_timestamp TIMESTAMP(6), + my_date DATE, + my_time TIME(6), + my_year YEAR, + my_binary BINARY(50), + my_varbinary VARBINARY(255), + my_longblob LONGBLOB, + my_mediumblob MEDIUMBLOB, + my_blob BLOB, + my_tinyblob TINYBLOB, + my_geometry GEOMETRY, + my_bit BIT(25), + my_json JSON, + my_set SET('value1', 'value2'), + last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +)`) + if err != nil { + return fmt.Errorf("error creating my_table :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + for i := 0; i < 10; i++ { + _, err = mysqlDB.ExecContext(ctx, ` +INSERT INTO my_table ( + my_char, my_varchar, my_longtext, my_mediumtext, my_text, my_tinytext, + my_enum, my_unsigned_bigint, my_bigint, my_unsigned_int, my_int, + my_unsigned_mediumint, my_mediumint, my_unsigned_smallint, my_smallint, + my_unsigned_tinyint, my_tinyint, my_double, my_float, my_decimal, + my_datetime, my_timestamp, my_date, my_time, my_year, my_binary, + my_varbinary, my_longblob, my_mediumblob, my_blob, my_tinyblob, my_geometry, + my_bit, my_json, my_set +) +VALUES +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'0001111111', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'0011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), +('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1')`) + if err != nil { + return fmt.Errorf("failed to insert data: %w", err) + } + } + + logger.Info("mysql setup successful") + + return nil +} diff --git a/cmd/tests/oracleSetup.go b/cmd/tests/oracleSetup.go new file mode 100644 index 00000000..da34cabe --- /dev/null +++ b/cmd/tests/oracleSetup.go @@ -0,0 +1,122 @@ +package main + +import ( + "context" + "fmt" + "time" +) + +func setupOracle() error { + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + query := "CREATE USER free_user IDENTIFIED BY :1" + _, err := oracleDB.ExecContext(ctx, query, oraclePassword) + if err != nil { + logger.Warn(fmt.Sprintf("error creating oracle user :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, "ALTER USER FREE_USER QUOTA UNLIMITED ON USERS") + if err != nil { + logger.Warn(fmt.Sprintf("error altering oracle user :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, "CREATE TABLE free_user.my_table (my_id NUMBER GENERATED AS IDENTITY primary key, my_nchar NCHAR(10), my_number NUMBER(10,5), my_float FLOAT, my_varchar2 VARCHAR2(128), my_date DATE, my_binaryfloat BINARY_FLOAT, my_binarydouble BINARY_DOUBLE, my_raw RAW(128), my_char CHAR(8), my_timestamp TIMESTAMP, my_timestamptz TIMESTAMP WITH TIME ZONE, my_intervalym INTERVAL YEAR TO MONTH, my_intervalds INTERVAL DAY TO SECOND, my_urowid urowid, my_timestampltz TIMESTAMP WITH LOCAL TIME ZONE, my_clob CLOB, my_blob BLOB, my_nclob NCLOB, my_varchar VARCHAR(128), last_modified TIMESTAMP DEFAULT SYSTIMESTAMP)") + if err != nil { + logger.Warn(fmt.Sprintf("error creating oracle table :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, "delete from free_user.my_table") + if err != nil { + return fmt.Errorf("error deleting from my_table :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, ` +CREATE OR REPLACE TRIGGER free_user.trg_my_table_last_modified +BEFORE UPDATE ON free_user.my_table +FOR EACH ROW +BEGIN + :NEW.last_modified := SYSTIMESTAMP; +END; +`) + if err != nil { + return fmt.Errorf("error creating trg_my_table_last_modified :: %v", err) + } + + for i := 0; i < 1000; i++ { + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, ` +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column')`) + if err != nil { + return fmt.Errorf("failed to insert data: %w", err) + } + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, ` +INSERT INTO free_user.my_table ( + my_nchar, + my_number, + my_float, + my_varchar2, + my_date, + my_binaryfloat, + my_binarydouble, + my_raw, + my_char, + my_timestamp, + my_timestamptz, + my_intervalym, + my_intervalds, + my_urowid, + my_timestampltz, + my_clob, + my_blob, + my_nclob, + my_varchar +) VALUES ( + NULL, + NULL, + NULL, + 'one not null', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +)`) + if err != nil { + return fmt.Errorf("failed to insert data: %w", err) + } + + logger.Info("Oracle setup successful") + + return nil +} diff --git a/cmd/tests/postgresqlSetup.go b/cmd/tests/postgresqlSetup.go new file mode 100644 index 00000000..7f8f6823 --- /dev/null +++ b/cmd/tests/postgresqlSetup.go @@ -0,0 +1,352 @@ +package main + +import ( + "context" + "database/sql" + "fmt" + "time" +) + +func setupPostgreSQL() error { + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err := postgresqlDB.ExecContext(ctx, "DROP DATABASE mydb with (force)") + if err != nil { + logger.Warn(fmt.Sprintf("error dropping mydb in postgresql :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = postgresqlDB.ExecContext(ctx, "CREATE DATABASE mydb") + if err != nil { + return fmt.Errorf("error creating database :: %v", err) + } + + postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=mydb sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword)) + if err != nil { + return fmt.Errorf("error creating PostgreSQL connection pool :: %v", err) + } + + err = postgresqlDB.Ping() + if err != nil { + return fmt.Errorf("error pinging PostgreSQL :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = postgresqlDB.ExecContext(ctx, ` +CREATE TABLE my_table ( + my_char CHAR, + my_varchar VARCHAR, + my_text TEXT, + my_int8 INT8, + my_int4 INT4, + my_int2 INT2, + my_float8 FLOAT8, + my_float4 FLOAT4, + my_numeric NUMERIC(10, 5), + my_timestamp TIMESTAMP, + my_timestamptz TIMESTAMPTZ, + my_date DATE, + my_time TIME, + my_interval INTERVAL, + my_bytea BYTEA, + my_box BOX, + my_circle CIRCLE, + my_line LINE, + my_path PATH, + my_point POINT, + my_polygon POLYGON, + my_lseg LSEG, + my_bool BOOL, + my_bit BIT, + my_varbit VARBIT, + my_uuid UUID, + my_json JSON, + my_jsonb JSONB, + my_inet INET, + my_macaddr MACADDR, + my_cidr CIDR, + my_xml xml, + my_timetz TIMETZ, + my_pg_lsn pg_lsn, + my_tsquery tsquery, + my_tsvector tsvector, + my_serial SERIAL, + my_bigserial BIGSERIAL primary key, + last_modified timestamp default CURRENT_TIMESTAMP +); +`) + if err != nil { + return fmt.Errorf("error creating my_table :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = postgresqlDB.ExecContext(ctx, ` +CREATE OR REPLACE FUNCTION update_last_modified() +RETURNS TRIGGER AS $$ +BEGIN + NEW.last_modified = CURRENT_TIMESTAMP; + RETURN NEW; +END; +$$ LANGUAGE plpgsql;`) + if err != nil { + return fmt.Errorf("error creating update_last_modified function :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = postgresqlDB.ExecContext(ctx, ` + CREATE TRIGGER tr_update_last_modified +BEFORE UPDATE ON my_table +FOR EACH ROW +EXECUTE FUNCTION update_last_modified();`) + if err != nil { + return fmt.Errorf("error creating tr_update_last_modified trigger :: %w", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = postgresqlDB.ExecContext(ctx, ` +DO $$ +DECLARE + counter INTEGER := 0; +BEGIN + WHILE counter < 1000 LOOP + INSERT INTO my_table ( + my_char, + my_varchar, + my_text, + my_int8, + my_int4, + my_int2, + my_float8, + my_float4, + my_numeric, + my_timestamp, + my_timestamptz, + my_date, + my_time, + my_interval, + my_bytea, + my_box, + my_circle, + my_line, + my_path, + my_point, + my_polygon, + my_lseg, + my_bool, + my_bit, + my_varbit, + my_uuid, + my_json, + my_jsonb, + my_inet, + my_macaddr, + my_cidr, + my_xml, + my_timetz, + my_tsquery, + my_tsvector, + my_pg_lsn + ) + VALUES + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'), + ('A','"Hello" there', 'This is ''a tab test text', 1234567890123456, 12345678,1234, 12345678.12345678, 1234.1234, 123.456, '2023-07-23 12:34:56.643381', '2023-07-23 12:34:56.643381-07:00', '2023-07-23', '12:34:56.643381', '1 day', E'\\xDEADBEEF', '((1,2),(3,4))', '<(1,2),3>', '{1,-2,3}', '((1,2),(3,4))', '(1,2)', '((1,2),(3,4))', '((1,2),(3,4))', true, B'1', B'101', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', '{"key":"value"}', '{"key":"value"}', '192.168.1.1', '08:00:2B:01:02:03', '192.168.1.0/24', 'Some Content', '12:34:56.765432-07:00', 'super & rat', 'super', '1/3B9ACA00'); + + counter := counter + 1; + END LOOP; +END $$; + + +INSERT INTO my_table +( my_char, + my_varchar, + my_text, + my_int8, + my_int4, + my_int2, + my_float8, + my_float4, + my_numeric, + my_timestamp, + my_timestamptz, + my_date, + my_time, + my_interval, + my_bytea, + my_box, + my_circle, + my_line, + my_path, + my_point, + my_polygon, + my_lseg, + my_bool, + my_bit, + my_varbit, + my_uuid, + my_json, + my_jsonb, + my_inet, + my_macaddr, + my_cidr, + my_xml, + my_timetz, + my_tsquery, + my_tsvector, + my_pg_lsn + ) + values ( + null, + 'one not null', + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + );`) + if err != nil { + return fmt.Errorf("failed to insert data: %w", err) + } + + logger.Info("PostgreSQL setup successful") + + return nil +} diff --git a/docker-compose.yml b/docker-compose.yml index 8a65028d..b56b4ac0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,10 @@ -version: '3.3' - services: - sqlpipe: build: context: . dockerfile: sqlpipe.dockerfile container_name: sqlpipe + platform: linux/amd64 ports: - "9000:9000" deploy: @@ -21,22 +19,22 @@ services: ACCEPT_EULA: Y SA_PASSWORD: Mypass123 # platform: linux/amd64 - volumes: - - ./setup-sql/mssql.sql:/setup.sql - command: > - /bin/bash -c " - export TZ=US/Pacific - /opt/mssql/bin/sqlservr & - sleep 25; - /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Mypass123' -d master -i /setup.sql - tail -f /dev/null - " + # volumes: + # - ./setup-sql/mssql.sql:/setup.sql + # command: > + # /bin/bash -c " + # export TZ=US/Pacific + # /opt/mssql/bin/sqlservr & + # sleep 25; + # /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'Mypass123' -d master -i /setup.sql -C + # tail -f /dev/null + # " ports: - "1433:1433" deploy: resources: limits: - memory: 4G + memory: 2G postgresql: image: postgres @@ -46,43 +44,58 @@ services: - 5432:5432 environment: POSTGRES_PASSWORD: Mypass123 - volumes: - - ./setup-sql/postgresql-simple.sql:/docker-entrypoint-initdb.d/setup-1.sql - - ./setup-sql/postgresql-complex.sql:/docker-entrypoint-initdb.d/setup-2.sql + # volumes: + # - ./setup-sql/postgresql-simple.sql:/docker-entrypoint-initdb.d/setup-1.sql + # - ./setup-sql/postgresql-complex.sql:/docker-entrypoint-initdb.d/setup-2.sql deploy: resources: limits: memory: 1G mysql: - image: mysql:8.0 + image: mysql # platform: linux/amd64 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=Mypass123 ports: - "3306:3306" - volumes: - - ./setup-sql/mysql.sql:/docker-entrypoint-initdb.d/setup.sql + # volumes: + # - ./setup-sql/mysql.sql:/docker-entrypoint-initdb.d/setup.sql deploy: resources: limits: memory: 2G command: --local-infile=1 - # Oracle service (label used to access the service container) oracle: container_name: oracle - # Docker Hub image (feel free to change the tag "latest" to any other available one) - image: gvenzl/oracle-free:latest - environment: - ORACLE_PASSWORD: Mypass123 - NLS_CHARACTERSET: AL32UTF8 - APP_USER: admin - APP_USER_PASSWORD: Mypass123 + image: oracle/database:23ai-free-arm64 ports: - - 1521:1521 + - "1521:1521" + # volumes: + # - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql + environment: + - ORACLE_PWD=Mypass123 + - NLS_CHARACTERSET=AL32UTF8 + deploy: + resources: + limits: + memory: 4G +# # Oracle service (label used to access the service container) +# oracle: +# container_name: oracle +# platform: linux/amd64 +# # Docker Hub image (feel free to change the tag "latest" to any other available one) +# image: gvenzl/oracle-free:latest +# environment: +# ORACLE_PASSWORD: Mypass123 +# NLS_CHARACTERSET: AL32UTF8 +# APP_USER: admin +# APP_USER_PASSWORD: Mypass123 +# ports: +# - 1521:1521 # oracle: # image: sqlpipe/oracle:21.3.0 @@ -93,9 +106,9 @@ services: # environment: # - ORACLE_PWD=Mypass123 # - NLS_CHARACTERSET=AL32UTF8 -# volumes: -# - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql +# # volumes: +# # - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql # deploy: # resources: # limits: -# memory: 16G +# memory: 4G diff --git a/setup-sql/oracle.sql b/setup-sql/oracle.sql index ae8a0969..2885ad13 100644 --- a/setup-sql/oracle.sql +++ b/setup-sql/oracle.sql @@ -1,18 +1,66 @@ -CREATE PLUGGABLE DATABASE mydb ADMIN USER mydb_admin IDENTIFIED BY Mypass123 FILE_NAME_CONVERT = ('/opt/oracle/oradata/ORCLCDB/pdbseed/', '/opt/oracle/oradata/ORCLCDB/mydb/'); -ALTER PLUGGABLE DATABASE mydb OPEN; -ALTER PLUGGABLE DATABASE mydb SAVE STATE; +-- CREATE PLUGGABLE DATABASE mydb ADMIN USER free_user IDENTIFIED BY Mypass123 FILE_NAME_CONVERT = ('/opt/oracle/oradata/ORCLCDB/pdbseed/', '/opt/oracle/oradata/ORCLCDB/mydb/'); -ALTER SESSION SET container=mydb; -CREATE TABLESPACE mydb_tablespace DATAFILE '/opt/oracle/oradata/ORCLCDB/mydb/mydb_tablespace.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M; -ALTER USER mydb_admin DEFAULT TABLESPACE mydb_tablespace; -ALTER USER mydb_admin QUOTA UNLIMITED ON mydb_tablespace; -GRANT SYSDBA TO mydb_admin; -grant create table to mydb_admin; +-- ALTER SESSION SET container=free_user; +-- CREATE TABLESPACE mydb_tablespace DATAFILE '/opt/oracle/oradata/ORCLCDB/mydb/mydb_tablespace.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M; +-- ALTER USER free_user DEFAULT TABLESPACE mydb_tablespace; +-- ALTER USER free_user QUOTA UNLIMITED ON mydb_tablespace; +-- GRANT SYSDBA TO free_user; +-- grant create table to free_user; -CREATE TABLE mydb_admin.my_table (my_id NUMBER GENERATED AS IDENTITY primary key, my_nchar NCHAR(10), my_number NUMBER(10,5), my_float FLOAT, my_varchar2 VARCHAR2(128), my_date DATE, my_binaryfloat BINARY_FLOAT, my_binarydouble BINARY_DOUBLE, my_raw RAW(128), my_char CHAR(8), my_timestamp TIMESTAMP, my_timestamptz TIMESTAMP WITH TIME ZONE, my_intervalym INTERVAL YEAR TO MONTH, my_intervalds INTERVAL DAY TO SECOND, my_urowid urowid, my_timestampltz TIMESTAMP WITH LOCAL TIME ZONE, my_clob CLOB, my_blob BLOB, my_nclob NCLOB, my_varchar VARCHAR(128), last_modified TIMESTAMP DEFAULT SYSTIMESTAMP); +ALTER SESSION SET CONTAINER=FREEPDB1; -CREATE OR REPLACE TRIGGER mydb_admin.trg_your_table_name_last_modified -BEFORE UPDATE ON mydb_admin.my_table +CREATE USER free_user IDENTIFIED BY Mypass123; + +GRANT DBA TO free_user; + +GRANT CREATE SESSION, CREATE TABLE, UNLIMITED TABLESPACE TO free_user; + +CREATE TABLE free_user.my_table (my_id NUMBER GENERATED AS IDENTITY primary key, my_nchar NCHAR(10), my_number NUMBER(10,5), my_float FLOAT, my_varchar2 VARCHAR2(128), my_date DATE, my_binaryfloat BINARY_FLOAT, my_binarydouble BINARY_DOUBLE, my_raw RAW(128), my_char CHAR(8), my_timestamp TIMESTAMP, my_timestamptz TIMESTAMP WITH TIME ZONE, my_intervalym INTERVAL YEAR TO MONTH, my_intervalds INTERVAL DAY TO SECOND, my_urowid urowid, my_timestampltz TIMESTAMP WITH LOCAL TIME ZONE, my_clob CLOB, my_blob BLOB, my_nclob NCLOB, my_varchar VARCHAR(128), last_modified TIMESTAMP DEFAULT SYSTIMESTAMP); + +INSERT INTO free_user.my_table ( + my_nchar, + my_number, + my_float, + my_varchar2, + my_date, + my_binaryfloat, + my_binarydouble, + my_raw, + my_char, + my_timestamp, + my_timestamptz, + my_intervalym, + my_intervalds, + my_urowid, + my_timestampltz, + my_clob, + my_blob, + my_nclob, + my_varchar +) VALUES ( + NULL, + NULL, + NULL, + 'one not null', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +); + +CREATE OR REPLACE TRIGGER free_user.trg_my_table_last_modified +BEFORE UPDATE ON free_user.my_table FOR EACH ROW BEGIN :NEW.last_modified := SYSTIMESTAMP; @@ -20,112 +68,157 @@ END; BEGIN FOR i IN 1..100 LOOP -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); -INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); +INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column'); END LOOP; COMMIT; END; begin -INSERT INTO mydb_admin.my_table ( +INSERT INTO free_user.my_table ( + my_nchar, + my_number, + my_float, + my_varchar2, + my_date, + my_binaryfloat, + my_binarydouble, + my_raw, + my_char, + my_timestamp, + my_timestamptz, + my_intervalym, + my_intervalds, + my_urowid, + my_timestampltz, + my_clob, + my_blob, + my_nclob, + my_varchar +) VALUES ( + NULL, + NULL, + NULL, + 'one not null', + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +); +end; + +commit; + +INSERT INTO free_user.my_table ( my_nchar, my_number, my_float, @@ -166,4 +259,5 @@ INSERT INTO mydb_admin.my_table ( NULL, NULL ); -end; \ No newline at end of file + +commit; \ No newline at end of file From 15ec4e5cfdcffc080a14c76c4b19040718bf467b Mon Sep 17 00:00:00 2001 From: Cal Mitchell <33095819+calmitchell617@users.noreply.github.com> Date: Tue, 19 Nov 2024 15:30:37 +0000 Subject: [PATCH 4/7] testing app working a bit --- Makefile | 15 +++--- cmd/sqlpipe/transfers.go | 4 +- cmd/tests/helpers.go | 78 ++++++++++++++++++++++++++++++++ cmd/tests/main.go | 88 ++++++++++++++++++++++++++++++------ cmd/tests/postgresqlSetup.go | 46 ++++++++++++++----- 5 files changed, 195 insertions(+), 36 deletions(-) create mode 100644 cmd/tests/helpers.go diff --git a/Makefile b/Makefile index 254880d2..da34af07 100644 --- a/Makefile +++ b/Makefile @@ -100,8 +100,8 @@ vendor: .PHONY: build/sqlpipe build/sqlpipe: @echo 'Building cmd/sqlpipe...' - GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o=./bin/sqlpipe ./cmd/sqlpipe - # go build -ldflags="-w -s" -o=./bin/sqlpipe ./cmd/sqlpipe + # GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o=./bin/sqlpipe ./cmd/sqlpipe + go build -ldflags="-w -s" -o=./bin/sqlpipe ./cmd/sqlpipe ## build/docker: build the cmd/sqlpipe docker image and push .PHONY: build/docker @@ -127,8 +127,9 @@ build/tests: .PHONY: tests tests: build/tests - ./bin/tests -postgresql-host=${POSTGRESQL_HOST} -postgresql-user=${POSTGRESQL_USER} -postgresql-password=${POSTGRESQL_PASSWORD} -postgresql-db=${POSTGRESQL_DB} -postgresql-port=${POSTGRESQL_PORT} \ - -mysql-host=${MYSQL_HOST} -mysql-user=${MYSQL_USER} -mysql-password=${MYSQL_PASSWORD} -mysql-db=${MYSQL_DB} -mysql-port=${MYSQL_PORT} \ - -mssql-host=${MSSQL_HOST} -mssql-user=${MSSQL_USER} -mssql-password=${MSSQL_PASSWORD} -mssql-db=${MSSQL_DB} -mssql-port=${MSSQL_PORT} \ - -oracle-host=${ORACLE_HOST} -oracle-user=${ORACLE_USER} -oracle-password=${ORACLE_PASSWORD} -oracle-db=${ORACLE_DB} -oracle-port=${ORACLE_PORT} \ - -snowflake-account=${SNOWFLAKE_ACCOUNT} -snowflake-user=${SNOWFLAKE_USER} -snowflake-password=${SNOWFLAKE_PASSWORD} -snowflake-db=${SNOWFLAKE_DB} \ No newline at end of file + ./bin/tests -postgresql-host=${POSTGRESQL_HOST} -postgresql-user=${POSTGRESQL_USER} -postgresql-password=${POSTGRESQL_PASSWORD} -postgresql-port=${POSTGRESQL_PORT} \ + -mysql-host=${MYSQL_HOST} -mysql-user=${MYSQL_USER} -mysql-password=${MYSQL_PASSWORD} -mysql-port=${MYSQL_PORT} \ + -mssql-host=${MSSQL_HOST} -mssql-user=${MSSQL_USER} -mssql-password=${MSSQL_PASSWORD} -mssql-port=${MSSQL_PORT} \ + -oracle-host=${ORACLE_HOST} -oracle-user=${ORACLE_USER} -oracle-password=${ORACLE_PASSWORD} -oracle-port=${ORACLE_PORT} \ + -snowflake-account=${SNOWFLAKE_ACCOUNT} -snowflake-user=${SNOWFLAKE_USER} -snowflake-password=${SNOWFLAKE_PASSWORD} \ + -server-address=${SERVER_ADDRESS} \ No newline at end of file diff --git a/cmd/sqlpipe/transfers.go b/cmd/sqlpipe/transfers.go index ab7da65a..c6c1d476 100644 --- a/cmd/sqlpipe/transfers.go +++ b/cmd/sqlpipe/transfers.go @@ -226,7 +226,7 @@ func createTransferHandler(w http.ResponseWriter, r *http.Request) { if transfer.Query == "" { if schemaRequired[transfer.SourceConnectionInfo.Type] { - v.check(transfer.SourceSchema != "", "source-schema", fmt.Sprintf("if query is not provided, must be provided for source type %v", transfer.TargetConnectionInfo.Type)) + v.check(transfer.SourceSchema != "", "source-schema", fmt.Sprintf("if query is not provided, must be provided for source type %v", transfer.SourceConnectionInfo.Type)) } v.check(transfer.SourceTable != "", "source-table", "must be provided if query is not provided") } else { @@ -793,7 +793,7 @@ func handleCliTransfer(cliTransferInput CliTransferInput) { if transfer.Query == "" { if schemaRequired[transfer.SourceConnectionInfo.Type] { - v.check(transfer.SourceSchema != "", "source-schema", fmt.Sprintf("if query is not provided, must be provided for source type %v", transfer.TargetConnectionInfo.Type)) + v.check(transfer.SourceSchema != "", "source-schema", fmt.Sprintf("if query is not provided, must be provided for source type %v", transfer.SourceConnectionInfo.Type)) } v.check(transfer.SourceTable != "", "source-table", "must be provided if query is not provided") } else { diff --git a/cmd/tests/helpers.go b/cmd/tests/helpers.go new file mode 100644 index 00000000..201e602b --- /dev/null +++ b/cmd/tests/helpers.go @@ -0,0 +1,78 @@ +package main + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "net/http" +) + +type ConnectionInfo struct { + SystemType string + Host string + Port int + User string + Password string + DBName string + Account string + ConnectionString string + Schema string + Table string +} + +func makeSqlpipeTransfer(source, target ConnectionInfo) error { + payload := map[string]interface{}{ + "source-name": source.SystemType, + "source-type": source.SystemType, + "source-connection-string": source.ConnectionString, + "source-table": source.Table, + "target-name": target.SystemType, + "target-type": target.SystemType, + "target-connection-string": target.ConnectionString, + "target-table": target.Table, + "drop-target-table-if-exists": true, + "create-target-table-if-not-exists": true, + "create-target-schema-if-not-exists": true, + "target-database": target.DBName, + } + + if source.Schema != "" { + payload["source-schema"] = source.Schema + } + + if target.Schema != "" { + payload["target-schema"] = target.Schema + } + + jsonData, err := json.Marshal(payload) + if err != nil { + return fmt.Errorf("error marshalling json :: %v", err) + } + + transferRoute := fmt.Sprintf("%s/transfers/create", serverAddress) + + req, err := http.NewRequest("POST", transferRoute, bytes.NewBuffer(jsonData)) + if err != nil { + return fmt.Errorf("error creating request :: %v", err) + } + + req.Header.Set("Content-Type", "application/json") + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return fmt.Errorf("error sending request :: %v", err) + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return fmt.Errorf("error reading response body :: %v", err) + } + + fmt.Printf("Response status: %s\n", resp.Status) + fmt.Printf("Response body: %s\n", body) + + return nil +} diff --git a/cmd/tests/main.go b/cmd/tests/main.go index cae3dea7..6145168e 100644 --- a/cmd/tests/main.go +++ b/cmd/tests/main.go @@ -25,30 +25,45 @@ var postgresqlHost string var postgresqlPort int var postgresqlUser string var postgresqlPassword string -var postgresqlDBName string +var postgresqlDBName = "mydb" +var postgresqlSchema = "public" +var postgresqlTable = "my_table" +var postgresqlSchemaRequired = true var mysqlHost string var mysqlPort int var mysqlUser string var mysqlPassword string -var mysqlDBName string +var mysqlDBName = "mydb" +var mysqlTable = "my_table" +var mysqlSchemaRequired = false var mssqlHost string var mssqlPort int var mssqlUser string var mssqlPassword string -var mssqlDBName string +var mssqlDBName = "mydb" +var mssqlSchema = "dbo" +var mssqlTable = "my_table" +var mssqlSchemaRequired = true var oracleHost string var oraclePort int var oracleUser string var oraclePassword string -var oracleDBName string +var oracleDBName = "FREEPDB1" +var oracleTable = "my_table" +var oracleSchemaRequired = false var snowflakeAccount string var snowflakeUser string var snowflakePassword string -var snowflakeDBName string +var snowflakeDBName = "mydb" +var snowflakeSchema = "public" +var snowflakeTable = "my_table" +var snowflakeSchemaRequired = true + +var serverAddress string func main() { @@ -56,38 +71,62 @@ func main() { flag.IntVar(&postgresqlPort, "postgresql-port", 0, "PostgreSQL port") flag.StringVar(&postgresqlUser, "postgresql-user", "", "PostgreSQL user") flag.StringVar(&postgresqlPassword, "postgresql-password", "", "PostgreSQL password") - flag.StringVar(&postgresqlDBName, "postgresql-db", "", "PostgreSQL database") flag.StringVar(&mysqlHost, "mysql-host", "", "MySQL host") flag.IntVar(&mysqlPort, "mysql-port", 0, "MySQL port") flag.StringVar(&mysqlUser, "mysql-user", "", "MySQL user") flag.StringVar(&mysqlPassword, "mysql-password", "", "MySQL password") - flag.StringVar(&mysqlDBName, "mysql-db", "", "MySQL database") flag.StringVar(&mssqlHost, "mssql-host", "", "SQL Server host") flag.IntVar(&mssqlPort, "mssql-port", 0, "SQL Server port") flag.StringVar(&mssqlUser, "mssql-user", "", "SQL Server user") flag.StringVar(&mssqlPassword, "mssql-password", "", "SQL Server password") - flag.StringVar(&mssqlDBName, "mssql-db", "", "SQL Server database") flag.StringVar(&oracleHost, "oracle-host", "", "Oracle host") flag.IntVar(&oraclePort, "oracle-port", 0, "Oracle port") flag.StringVar(&oracleUser, "oracle-user", "", "Oracle user") flag.StringVar(&oraclePassword, "oracle-password", "", "Oracle password") - flag.StringVar(&oracleDBName, "oracle-db", "", "Oracle database") flag.StringVar(&snowflakeAccount, "snowflake-account", "", "Snowflake account") flag.StringVar(&snowflakeUser, "snowflake-user", "", "Snowflake user") flag.StringVar(&snowflakePassword, "snowflake-password", "", "Snowflake password") - flag.StringVar(&snowflakeDBName, "snowflake-db", "", "Snowflake database") + + flag.StringVar(&serverAddress, "server-address", "", "Server address") flag.Parse() + // mysqlConnectionInfo := ConnectionInfo{ + // SystemType: "mysql", + // Host: mysqlHost, + // Port: mysqlPort, + // User: mysqlUser, + // Password: mysqlPassword, + // DBName: mysqlDBName, + // } + + // mssqlConnectionInfo := ConnectionInfo{ + // SystemType: "mssql", + // Host: mssqlHost, + // Port: mssqlPort, + // User: mssqlUser, + // Password: mssqlPassword, + // DBName: mssqlDBName, + // } + + // oracleConnectionInfo := ConnectionInfo{ + // SystemType: "oracle", + // Host: oracleHost, + // Port: oraclePort, + // User: oracleUser, + // Password: oraclePassword, + // DBName: oracleDBName, + // } + logger = slog.New(slog.NewTextHandler(os.Stdout, nil)) var err error - postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=%s sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword, postgresqlDBName)) + postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=postgres sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword)) if err != nil { logger.Info(fmt.Sprintf("error connecting to PostgreSQL :: %v", err)) @@ -98,7 +137,7 @@ func main() { logger.Info(fmt.Sprintf("Error connecting to PostgreSQL :: %v", err)) } - mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/%s", mysqlUser, mysqlPassword, mysqlHost, mysqlPort, mysqlDBName)) + mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/mysql", mysqlUser, mysqlPassword, mysqlHost, mysqlPort)) if err != nil { logger.Info(fmt.Sprintf("error connecting to MySQL :: %v", err)) } @@ -108,7 +147,7 @@ func main() { logger.Info(fmt.Sprintf("Error connecting to MySQL :: %v", err)) } - mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=%s", mssqlHost, mssqlUser, mssqlPassword, mssqlPort, mssqlDBName)) + mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=master", mssqlHost, mssqlUser, mssqlPassword, mssqlPort)) if err != nil { logger.Info(fmt.Sprintf("error connecting to SQL Server :: %v", err)) } @@ -134,7 +173,9 @@ func main() { logger.Info(fmt.Sprintf("Error connecting to Oracle :: %v", err)) } - snowflakeDB, err = sql.Open("snowflake", fmt.Sprintf("%s:%s@%s/%s", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName)) + snowflakeDsn := fmt.Sprintf("%s:%s@%s/%s", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName) + + snowflakeDB, err = sql.Open("snowflake", snowflakeDsn) if err != nil { logger.Info(fmt.Sprintf("error connecting to Snowflake :: %v", err)) } @@ -144,9 +185,20 @@ func main() { logger.Info(fmt.Sprintf("Error connecting to Snowflake :: %v", err)) } + snowflakeConnectionInfo := ConnectionInfo{ + SystemType: "snowflake", + Host: snowflakeAccount, + User: snowflakeUser, + Password: snowflakePassword, + DBName: snowflakeDBName, + ConnectionString: snowflakeDsn, + Schema: snowflakeSchema, + Table: snowflakeTable, + } + logger.Info("All connections successful") - err = setupPostgreSQL() + postgresqlConnectionInfo, err := setupPostgreSQL() if err != nil { logger.Info(fmt.Sprintf("error setting up PostgreSQL :: %v", err)) } @@ -165,4 +217,10 @@ func main() { if err != nil { logger.Info(fmt.Sprintf("error setting up Oracle :: %v", err)) } + + err = makeSqlpipeTransfer(postgresqlConnectionInfo, snowflakeConnectionInfo) + if err != nil { + logger.Info(fmt.Sprintf("error transferring data :: %v", err)) + } + } diff --git a/cmd/tests/postgresqlSetup.go b/cmd/tests/postgresqlSetup.go index 7f8f6823..2f3aaa46 100644 --- a/cmd/tests/postgresqlSetup.go +++ b/cmd/tests/postgresqlSetup.go @@ -7,12 +7,14 @@ import ( "time" ) -func setupPostgreSQL() error { +func setupPostgreSQL() (ConnectionInfo, error) { + + connectionInfo := ConnectionInfo{} ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - _, err := postgresqlDB.ExecContext(ctx, "DROP DATABASE mydb with (force)") + _, err := postgresqlDB.ExecContext(ctx, fmt.Sprintf("DROP DATABASE %v with (force)", postgresqlDBName)) if err != nil { logger.Warn(fmt.Sprintf("error dropping mydb in postgresql :: %v", err)) } @@ -22,19 +24,39 @@ func setupPostgreSQL() error { _, err = postgresqlDB.ExecContext(ctx, "CREATE DATABASE mydb") if err != nil { - return fmt.Errorf("error creating database :: %v", err) + return connectionInfo, fmt.Errorf("error creating database :: %v", err) } - postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=mydb sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword)) + dsn := fmt.Sprintf("postgresql://%v:%v@%v:5432/%v?sslmode=disable", postgresqlUser, postgresqlPassword, postgresqlHost, postgresqlDBName) + + postgresqlDB, err = sql.Open("pgx", dsn) if err != nil { - return fmt.Errorf("error creating PostgreSQL connection pool :: %v", err) + return connectionInfo, fmt.Errorf("error creating PostgreSQL connection pool :: %v", err) } - err = postgresqlDB.Ping() + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + err = postgresqlDB.PingContext(ctx) if err != nil { - return fmt.Errorf("error pinging PostgreSQL :: %v", err) + return connectionInfo, fmt.Errorf("error pinging PostgreSQL :: %v", err) + } + + connectionInfo = ConnectionInfo{ + SystemType: "postgresql", + Host: postgresqlHost, + Port: postgresqlPort, + User: postgresqlUser, + Password: postgresqlPassword, + DBName: postgresqlDBName, + ConnectionString: dsn, + Schema: postgresqlSchema, + Table: postgresqlTable, } + fmt.Println("CONN STIRNG") + fmt.Println(connectionInfo.ConnectionString) + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) defer cancel() @@ -82,7 +104,7 @@ CREATE TABLE my_table ( ); `) if err != nil { - return fmt.Errorf("error creating my_table :: %v", err) + return connectionInfo, fmt.Errorf("error creating my_table :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -97,7 +119,7 @@ BEGIN END; $$ LANGUAGE plpgsql;`) if err != nil { - return fmt.Errorf("error creating update_last_modified function :: %v", err) + return connectionInfo, fmt.Errorf("error creating update_last_modified function :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -109,7 +131,7 @@ BEFORE UPDATE ON my_table FOR EACH ROW EXECUTE FUNCTION update_last_modified();`) if err != nil { - return fmt.Errorf("error creating tr_update_last_modified trigger :: %w", err) + return connectionInfo, fmt.Errorf("error creating tr_update_last_modified trigger :: %w", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -343,10 +365,10 @@ INSERT INTO my_table null );`) if err != nil { - return fmt.Errorf("failed to insert data: %w", err) + return connectionInfo, fmt.Errorf("failed to insert data: %w", err) } logger.Info("PostgreSQL setup successful") - return nil + return connectionInfo, nil } From 3e0c1ec0bf3e89e88287486d1c34c22b6612362a Mon Sep 17 00:00:00 2001 From: Cal Mitchell Date: Tue, 19 Nov 2024 22:17:37 +0000 Subject: [PATCH 5/7] moved to speedy-1 --- docker-compose.yml | 65 +++++++--------------------------------------- 1 file changed, 9 insertions(+), 56 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b56b4ac0..d257b3ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,105 +10,58 @@ services: deploy: resources: limits: - memory: 1G + memory: 4G mssql: image: mcr.microsoft.com/mssql/server + platform: linux/amd64 container_name: mssql environment: ACCEPT_EULA: Y SA_PASSWORD: Mypass123 - # platform: linux/amd64 - # volumes: - # - ./setup-sql/mssql.sql:/setup.sql - # command: > - # /bin/bash -c " - # export TZ=US/Pacific - # /opt/mssql/bin/sqlservr & - # sleep 25; - # /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'Mypass123' -d master -i /setup.sql -C - # tail -f /dev/null - # " ports: - "1433:1433" deploy: resources: limits: - memory: 2G + memory: 4G postgresql: image: postgres - # platform: linux/amd64 + platform: linux/amd64 container_name: postgresql ports: - 5432:5432 environment: POSTGRES_PASSWORD: Mypass123 - # volumes: - # - ./setup-sql/postgresql-simple.sql:/docker-entrypoint-initdb.d/setup-1.sql - # - ./setup-sql/postgresql-complex.sql:/docker-entrypoint-initdb.d/setup-2.sql deploy: resources: limits: - memory: 1G + memory: 4G mysql: image: mysql - # platform: linux/amd64 + platform: linux/amd64 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=Mypass123 ports: - "3306:3306" - # volumes: - # - ./setup-sql/mysql.sql:/docker-entrypoint-initdb.d/setup.sql deploy: resources: limits: - memory: 2G + memory: 4G command: --local-infile=1 oracle: container_name: oracle - image: oracle/database:23ai-free-arm64 + image: oracle/database:21CXE ports: - "1521:1521" - # volumes: - # - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql environment: - ORACLE_PWD=Mypass123 - NLS_CHARACTERSET=AL32UTF8 deploy: resources: limits: - memory: 4G - -# # Oracle service (label used to access the service container) -# oracle: -# container_name: oracle -# platform: linux/amd64 -# # Docker Hub image (feel free to change the tag "latest" to any other available one) -# image: gvenzl/oracle-free:latest -# environment: -# ORACLE_PASSWORD: Mypass123 -# NLS_CHARACTERSET: AL32UTF8 -# APP_USER: admin -# APP_USER_PASSWORD: Mypass123 -# ports: -# - 1521:1521 - -# oracle: -# image: sqlpipe/oracle:21.3.0 -# platform: linux/amd64 -# container_name: oracle -# ports: -# - "1521:1521" -# environment: -# - ORACLE_PWD=Mypass123 -# - NLS_CHARACTERSET=AL32UTF8 -# # volumes: -# # - ./setup-sql/oracle.sql:/opt/oracle/scripts/startup/setup.sql -# deploy: -# resources: -# limits: -# memory: 4G + memory: 8G From 396c42c3f56a0675a7684915af6a43311adf281f Mon Sep 17 00:00:00 2001 From: Cal Mitchell Date: Wed, 20 Nov 2024 10:47:31 +0000 Subject: [PATCH 6/7] all setting up on speedy-1 --- cmd/tests/main.go | 33 +++++++++++------ cmd/tests/oracleSetup.go | 80 ++++++++++++++++++++++++++++++++++------ 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/cmd/tests/main.go b/cmd/tests/main.go index 6145168e..1d9b34bb 100644 --- a/cmd/tests/main.go +++ b/cmd/tests/main.go @@ -51,7 +51,7 @@ var oracleHost string var oraclePort int var oracleUser string var oraclePassword string -var oracleDBName = "FREEPDB1" +var oracleDBName = "XE" var oracleTable = "my_table" var oracleSchemaRequired = false @@ -128,33 +128,38 @@ func main() { postgresqlDB, err = sql.Open("pgx", fmt.Sprintf("host=%s port=%v user=%s password=%s dbname=postgres sslmode=disable", postgresqlHost, postgresqlPort, postgresqlUser, postgresqlPassword)) if err != nil { - logger.Info(fmt.Sprintf("error connecting to PostgreSQL :: %v", err)) - + logger.Error(fmt.Sprintf("error creating PostgreSQL connection pool :: %v", err)) + os.Exit(1) } err = postgresqlDB.Ping() if err != nil { - logger.Info(fmt.Sprintf("Error connecting to PostgreSQL :: %v", err)) + logger.Error(fmt.Sprintf("Error pinging PostgreSQL :: %v", err)) + os.Exit(1) } mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/mysql", mysqlUser, mysqlPassword, mysqlHost, mysqlPort)) if err != nil { - logger.Info(fmt.Sprintf("error connecting to MySQL :: %v", err)) + logger.Error(fmt.Sprintf("error creating MySQL connection pool :: %v", err)) + os.Exit(1) } err = mysqlDB.Ping() if err != nil { - logger.Info(fmt.Sprintf("Error connecting to MySQL :: %v", err)) + logger.Error(fmt.Sprintf("Error pinging MySQL :: %v", err)) + os.Exit(1) } mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=master", mssqlHost, mssqlUser, mssqlPassword, mssqlPort)) if err != nil { - logger.Info(fmt.Sprintf("error connecting to SQL Server :: %v", err)) + logger.Error(fmt.Sprintf("error creating SQL Server connection pool :: %v", err)) + os.Exit(1) } err = mssqlDB.Ping() if err != nil { - logger.Info(fmt.Sprintf("Error connecting to SQL Server :: %v", err)) + logger.Error(fmt.Sprintf("Error pinging SQL Server :: %v", err)) + os.Exit(1) } urlOptions := map[string]string{ @@ -165,24 +170,28 @@ func main() { oracleDB, err = sql.Open("oracle", connStr) if err != nil { - logger.Info(fmt.Sprintf("error connecting to Oracle :: %v", err)) + logger.Error(fmt.Sprintf("error creating Oracle connection pool :: %v", err)) + os.Exit(1) } err = oracleDB.Ping() if err != nil { - logger.Info(fmt.Sprintf("Error connecting to Oracle :: %v", err)) + logger.Error(fmt.Sprintf("error pinging Oracle :: %v", err)) + os.Exit(1) } snowflakeDsn := fmt.Sprintf("%s:%s@%s/%s", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName) snowflakeDB, err = sql.Open("snowflake", snowflakeDsn) if err != nil { - logger.Info(fmt.Sprintf("error connecting to Snowflake :: %v", err)) + logger.Error(fmt.Sprintf("error creating Snowflake connection pool :: %v", err)) + os.Exit(1) } err = snowflakeDB.Ping() if err != nil { - logger.Info(fmt.Sprintf("Error connecting to Snowflake :: %v", err)) + logger.Error(fmt.Sprintf("Error pinging Snowflake :: %v", err)) + os.Exit(1) } snowflakeConnectionInfo := ConnectionInfo{ diff --git a/cmd/tests/oracleSetup.go b/cmd/tests/oracleSetup.go index da34cabe..164ba7b5 100644 --- a/cmd/tests/oracleSetup.go +++ b/cmd/tests/oracleSetup.go @@ -2,17 +2,23 @@ package main import ( "context" + "database/sql" "fmt" "time" + + go_ora "github.com/sijms/go-ora/v2" ) func setupOracle() error { - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + var ctx context.Context + var cancel context.CancelFunc + var err error + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - query := "CREATE USER free_user IDENTIFIED BY :1" - _, err := oracleDB.ExecContext(ctx, query, oraclePassword) + _, err = oracleDB.ExecContext(ctx, fmt.Sprintf("CREATE PLUGGABLE DATABASE mydb ADMIN USER mydb_admin IDENTIFIED BY %v FILE_NAME_CONVERT = ('/opt/oracle/oradata/XE/pdbseed/', '/opt/oracle/oradata/XE/mydb/')", oraclePassword)) if err != nil { logger.Warn(fmt.Sprintf("error creating oracle user :: %v", err)) } @@ -20,15 +26,67 @@ func setupOracle() error { ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - _, err = oracleDB.ExecContext(ctx, "ALTER USER FREE_USER QUOTA UNLIMITED ON USERS") + _, err = oracleDB.ExecContext(ctx, "ALTER PLUGGABLE DATABASE mydb OPEN") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, "ALTER PLUGGABLE DATABASE mydb SAVE STATE") + if err != nil { + logger.Warn(fmt.Sprintf("error saving mydb state :: %v", err)) + } + + urlOptions := map[string]string{ + "dba privilege": "sysdba", + } + + oracleDB, err = sql.Open("oracle", go_ora.BuildUrl(oracleHost, oraclePort, "mydb", oracleUser, oraclePassword, urlOptions)) + if err != nil { + logger.Error(fmt.Sprintf("error creating Oracle connection pool :: %v", err)) + return err + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = oracleDB.ExecContext(ctx, "CREATE TABLESPACE mydb_tablespace DATAFILE '/opt/oracle/oradata/XE/mydb/mydb_tablespace.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + _, err = oracleDB.ExecContext(ctx, "ALTER USER mydb_admin DEFAULT TABLESPACE mydb_tablespace") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + _, err = oracleDB.ExecContext(ctx, "ALTER USER mydb_admin QUOTA UNLIMITED ON mydb_tablespace") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + _, err = oracleDB.ExecContext(ctx, "GRANT SYSDBA TO mydb_admin") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + _, err = oracleDB.ExecContext(ctx, "grant create table to mydb_admin") + if err != nil { + logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + } + + oracleDB, err = sql.Open("oracle", go_ora.BuildUrl(oracleHost, oraclePort, "mydb", "mydb_admin", oraclePassword, urlOptions)) if err != nil { - logger.Warn(fmt.Sprintf("error altering oracle user :: %v", err)) + logger.Error(fmt.Sprintf("error creating Oracle connection pool :: %v", err)) + return err } ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - _, err = oracleDB.ExecContext(ctx, "CREATE TABLE free_user.my_table (my_id NUMBER GENERATED AS IDENTITY primary key, my_nchar NCHAR(10), my_number NUMBER(10,5), my_float FLOAT, my_varchar2 VARCHAR2(128), my_date DATE, my_binaryfloat BINARY_FLOAT, my_binarydouble BINARY_DOUBLE, my_raw RAW(128), my_char CHAR(8), my_timestamp TIMESTAMP, my_timestamptz TIMESTAMP WITH TIME ZONE, my_intervalym INTERVAL YEAR TO MONTH, my_intervalds INTERVAL DAY TO SECOND, my_urowid urowid, my_timestampltz TIMESTAMP WITH LOCAL TIME ZONE, my_clob CLOB, my_blob BLOB, my_nclob NCLOB, my_varchar VARCHAR(128), last_modified TIMESTAMP DEFAULT SYSTIMESTAMP)") + _, err = oracleDB.ExecContext(ctx, "CREATE TABLE mydb_admin.my_table (my_id NUMBER GENERATED AS IDENTITY primary key, my_nchar NCHAR(10), my_number NUMBER(10,5), my_float FLOAT, my_varchar2 VARCHAR2(128), my_date DATE, my_binaryfloat BINARY_FLOAT, my_binarydouble BINARY_DOUBLE, my_raw RAW(128), my_char CHAR(8), my_timestamp TIMESTAMP, my_timestamptz TIMESTAMP WITH TIME ZONE, my_intervalym INTERVAL YEAR TO MONTH, my_intervalds INTERVAL DAY TO SECOND, my_urowid urowid, my_timestampltz TIMESTAMP WITH LOCAL TIME ZONE, my_clob CLOB, my_blob BLOB, my_nclob NCLOB, my_varchar VARCHAR(128), last_modified TIMESTAMP DEFAULT SYSTIMESTAMP)") if err != nil { logger.Warn(fmt.Sprintf("error creating oracle table :: %v", err)) } @@ -36,7 +94,7 @@ func setupOracle() error { ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - _, err = oracleDB.ExecContext(ctx, "delete from free_user.my_table") + _, err = oracleDB.ExecContext(ctx, "delete from mydb_admin.my_table") if err != nil { return fmt.Errorf("error deleting from my_table :: %v", err) } @@ -45,8 +103,8 @@ func setupOracle() error { defer cancel() _, err = oracleDB.ExecContext(ctx, ` -CREATE OR REPLACE TRIGGER free_user.trg_my_table_last_modified -BEFORE UPDATE ON free_user.my_table +CREATE OR REPLACE TRIGGER mydb_admin.trg_my_table_last_modified +BEFORE UPDATE ON mydb_admin.my_table FOR EACH ROW BEGIN :NEW.last_modified := SYSTIMESTAMP; @@ -61,7 +119,7 @@ END; defer cancel() _, err = oracleDB.ExecContext(ctx, ` -INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column')`) +INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column')`) if err != nil { return fmt.Errorf("failed to insert data: %w", err) } @@ -71,7 +129,7 @@ INSERT INTO free_user.my_table (my_nchar, my_number, my_float, my_varchar2, my_d defer cancel() _, err = oracleDB.ExecContext(ctx, ` -INSERT INTO free_user.my_table ( +INSERT INTO mydb_admin.my_table ( my_nchar, my_number, my_float, From 12898bf578e22ec7e8fe894b05dabffe48b9303f Mon Sep 17 00:00:00 2001 From: Cal Mitchell Date: Wed, 20 Nov 2024 13:39:40 +0000 Subject: [PATCH 7/7] eveything to everthing --- Makefile | 8 +- cmd/tests/helpers.go | 12 ++- cmd/tests/main.go | 67 ++++-------- cmd/tests/mssqlSetup.go | 32 ++++-- cmd/tests/mysqlSetup.go | 29 ++++-- cmd/tests/oracleSetup.go | 50 ++++++--- cmd/tests/postgresqlSetup.go | 3 - cmd/tests/snowflakeSetup.go | 195 +++++++++++++++++++++++++++++++++++ docker-compose.yml | 11 ++ tests.dockerfile | 10 ++ 10 files changed, 329 insertions(+), 88 deletions(-) create mode 100644 cmd/tests/snowflakeSetup.go create mode 100644 tests.dockerfile diff --git a/Makefile b/Makefile index da34af07..afd5f1bb 100644 --- a/Makefile +++ b/Makefile @@ -125,9 +125,15 @@ build/tests: # GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o=./bin/tests ./cmd/tests go build -ldflags="-w -s" -o=./bin/tests ./cmd/tests +## tests: run the cmd/tests application .PHONY: tests tests: build/tests - ./bin/tests -postgresql-host=${POSTGRESQL_HOST} -postgresql-user=${POSTGRESQL_USER} -postgresql-password=${POSTGRESQL_PASSWORD} -postgresql-port=${POSTGRESQL_PORT} \ + docker rm -f tests + docker compose up --build -d tests + +.PHONY: run-tests +run-tests: tests + docker exec -it tests /usr/local/bin/tests -postgresql-host=${POSTGRESQL_HOST} -postgresql-user=${POSTGRESQL_USER} -postgresql-password=${POSTGRESQL_PASSWORD} -postgresql-port=${POSTGRESQL_PORT} \ -mysql-host=${MYSQL_HOST} -mysql-user=${MYSQL_USER} -mysql-password=${MYSQL_PASSWORD} -mysql-port=${MYSQL_PORT} \ -mssql-host=${MSSQL_HOST} -mssql-user=${MSSQL_USER} -mssql-password=${MSSQL_PASSWORD} -mssql-port=${MSSQL_PORT} \ -oracle-host=${ORACLE_HOST} -oracle-user=${ORACLE_USER} -oracle-password=${ORACLE_PASSWORD} -oracle-port=${ORACLE_PORT} \ diff --git a/cmd/tests/helpers.go b/cmd/tests/helpers.go index 201e602b..7baa07b9 100644 --- a/cmd/tests/helpers.go +++ b/cmd/tests/helpers.go @@ -29,8 +29,12 @@ func makeSqlpipeTransfer(source, target ConnectionInfo) error { "source-table": source.Table, "target-name": target.SystemType, "target-type": target.SystemType, + "target-hostname": target.Host, + "target-port": target.Port, + "target-username": target.User, + "target-password": target.Password, "target-connection-string": target.ConnectionString, - "target-table": target.Table, + "target-table": fmt.Sprintf("%v_%v", target.Table, source.SystemType), "drop-target-table-if-exists": true, "create-target-table-if-not-exists": true, "create-target-schema-if-not-exists": true, @@ -71,8 +75,10 @@ func makeSqlpipeTransfer(source, target ConnectionInfo) error { return fmt.Errorf("error reading response body :: %v", err) } - fmt.Printf("Response status: %s\n", resp.Status) - fmt.Printf("Response body: %s\n", body) + if resp.StatusCode < 200 || resp.StatusCode >= 300 { + fmt.Println(string(body)) + return fmt.Errorf("error response status :: %v", resp.Status) + } return nil } diff --git a/cmd/tests/main.go b/cmd/tests/main.go index 1d9b34bb..c27081ca 100644 --- a/cmd/tests/main.go +++ b/cmd/tests/main.go @@ -28,7 +28,6 @@ var postgresqlPassword string var postgresqlDBName = "mydb" var postgresqlSchema = "public" var postgresqlTable = "my_table" -var postgresqlSchemaRequired = true var mysqlHost string var mysqlPort int @@ -36,7 +35,6 @@ var mysqlUser string var mysqlPassword string var mysqlDBName = "mydb" var mysqlTable = "my_table" -var mysqlSchemaRequired = false var mssqlHost string var mssqlPort int @@ -45,7 +43,6 @@ var mssqlPassword string var mssqlDBName = "mydb" var mssqlSchema = "dbo" var mssqlTable = "my_table" -var mssqlSchemaRequired = true var oracleHost string var oraclePort int @@ -53,7 +50,6 @@ var oracleUser string var oraclePassword string var oracleDBName = "XE" var oracleTable = "my_table" -var oracleSchemaRequired = false var snowflakeAccount string var snowflakeUser string @@ -61,7 +57,6 @@ var snowflakePassword string var snowflakeDBName = "mydb" var snowflakeSchema = "public" var snowflakeTable = "my_table" -var snowflakeSchemaRequired = true var serverAddress string @@ -95,33 +90,6 @@ func main() { flag.Parse() - // mysqlConnectionInfo := ConnectionInfo{ - // SystemType: "mysql", - // Host: mysqlHost, - // Port: mysqlPort, - // User: mysqlUser, - // Password: mysqlPassword, - // DBName: mysqlDBName, - // } - - // mssqlConnectionInfo := ConnectionInfo{ - // SystemType: "mssql", - // Host: mssqlHost, - // Port: mssqlPort, - // User: mssqlUser, - // Password: mssqlPassword, - // DBName: mssqlDBName, - // } - - // oracleConnectionInfo := ConnectionInfo{ - // SystemType: "oracle", - // Host: oracleHost, - // Port: oraclePort, - // User: oracleUser, - // Password: oraclePassword, - // DBName: oracleDBName, - // } - logger = slog.New(slog.NewTextHandler(os.Stdout, nil)) var err error @@ -180,7 +148,7 @@ func main() { os.Exit(1) } - snowflakeDsn := fmt.Sprintf("%s:%s@%s/%s", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName) + snowflakeDsn := fmt.Sprintf("%s:%s@%s/%s/%v", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName, snowflakeSchema) snowflakeDB, err = sql.Open("snowflake", snowflakeDsn) if err != nil { @@ -194,17 +162,6 @@ func main() { os.Exit(1) } - snowflakeConnectionInfo := ConnectionInfo{ - SystemType: "snowflake", - Host: snowflakeAccount, - User: snowflakeUser, - Password: snowflakePassword, - DBName: snowflakeDBName, - ConnectionString: snowflakeDsn, - Schema: snowflakeSchema, - Table: snowflakeTable, - } - logger.Info("All connections successful") postgresqlConnectionInfo, err := setupPostgreSQL() @@ -212,24 +169,36 @@ func main() { logger.Info(fmt.Sprintf("error setting up PostgreSQL :: %v", err)) } - err = setupMySQL() + mysqlConnectionInfo, err := setupMySQL() if err != nil { logger.Info(fmt.Sprintf("error setting up MySQL :: %v", err)) } - err = setupMssql() + mssqlConnectionInfo, err := setupMssql() if err != nil { logger.Info(fmt.Sprintf("error setting up SQL Server :: %v", err)) } - err = setupOracle() + oracleConnectionInfo, err := setupOracle() if err != nil { logger.Info(fmt.Sprintf("error setting up Oracle :: %v", err)) } - err = makeSqlpipeTransfer(postgresqlConnectionInfo, snowflakeConnectionInfo) + snowflakeConnectionInfo, err := setupSnowflake() if err != nil { - logger.Info(fmt.Sprintf("error transferring data :: %v", err)) + logger.Info(fmt.Sprintf("error setting up Snowflake :: %v", err)) } + sources := []ConnectionInfo{postgresqlConnectionInfo, mysqlConnectionInfo, mssqlConnectionInfo, oracleConnectionInfo, snowflakeConnectionInfo} + targets := []ConnectionInfo{postgresqlConnectionInfo, mysqlConnectionInfo, mssqlConnectionInfo, oracleConnectionInfo, snowflakeConnectionInfo} + + for _, source := range sources { + for _, target := range targets { + err = makeSqlpipeTransfer(source, target) + if err != nil { + logger.Error(fmt.Sprintf("error transferring data from %v to %v :: %v", source.SystemType, target.SystemType, err)) + } + logger.Info(fmt.Sprintf("transferred data from %v to %v", source.SystemType, target.SystemType)) + } + } } diff --git a/cmd/tests/mssqlSetup.go b/cmd/tests/mssqlSetup.go index 8071bae1..81e9d703 100644 --- a/cmd/tests/mssqlSetup.go +++ b/cmd/tests/mssqlSetup.go @@ -7,7 +7,9 @@ import ( "time" ) -func setupMssql() error { +func setupMssql() (ConnectionInfo, error) { + + var connectionInfo ConnectionInfo ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() @@ -22,17 +24,29 @@ func setupMssql() error { _, err = mssqlDB.ExecContext(ctx, "CREATE DATABASE mydb") if err != nil { - return fmt.Errorf("error creating database :: %v", err) + return connectionInfo, fmt.Errorf("error creating database :: %v", err) } - mssqlDB, err = sql.Open("mssql", fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=mydb", mssqlHost, mssqlUser, mssqlPassword, mssqlPort)) + dsn := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%v;database=mydb", mssqlHost, mssqlUser, mssqlPassword, mssqlPort) + mssqlDB, err = sql.Open("mssql", dsn) if err != nil { - return fmt.Errorf("error creating mssql connection pool :: %v", err) + return connectionInfo, fmt.Errorf("error creating mssql connection pool :: %v", err) } err = mssqlDB.Ping() if err != nil { - return fmt.Errorf("error pinging mssql :: %v", err) + return connectionInfo, fmt.Errorf("error pinging mssql :: %v", err) + } + + connectionInfo = ConnectionInfo{ + SystemType: "mssql", + Host: mssqlHost, + User: mssqlUser, + Password: mssqlPassword, + DBName: mssqlDBName, + ConnectionString: dsn, + Schema: mssqlSchema, + Table: mssqlTable, } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -72,7 +86,7 @@ CREATE TABLE my_table ( last_modified DATETIME DEFAULT GETDATE() )`) if err != nil { - return fmt.Errorf("error creating my_table :: %v", err) + return connectionInfo, fmt.Errorf("error creating my_table :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -89,7 +103,7 @@ BEGIN WHERE my_id IN (SELECT DISTINCT my_id FROM inserted) END`) if err != nil { - return fmt.Errorf("error creating tr_my_table_last_modified function :: %v", err) + return connectionInfo, fmt.Errorf("error creating tr_my_table_last_modified function :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -200,11 +214,11 @@ VALUES (N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data'), (N'ABCD', 'ABCD', N'This is a "test" message', N'Test message', 'This is a ''test'' message', 'Test message', '', 123456789, 12345, 123, 12, 123.45, 123.45, 123.43, 123.45, 123.45, '2023-07-23T14:30:00.7654321', '2023-07-23T14:30:00.765', '2023-07-23T14:30:00', '2023-07-23T14:30:00.7654321-07:00', '2023-07-23', '14:30:00', 0x010101, 0x010101, 1, NEWID(), 'Some XML data');`) if err != nil { - return fmt.Errorf("failed to insert data: %w", err) + return connectionInfo, fmt.Errorf("failed to insert data: %w", err) } } logger.Info("mssql setup successful") - return nil + return connectionInfo, nil } diff --git a/cmd/tests/mysqlSetup.go b/cmd/tests/mysqlSetup.go index 5f0420dc..4af3d387 100644 --- a/cmd/tests/mysqlSetup.go +++ b/cmd/tests/mysqlSetup.go @@ -7,12 +7,14 @@ import ( "time" ) -func setupMySQL() error { +func setupMySQL() (ConnectionInfo, error) { + + connectionInfo := ConnectionInfo{} ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - _, err := mysqlDB.ExecContext(ctx, "DROP DATABASE mydb") + _, err := mysqlDB.ExecContext(ctx, fmt.Sprintf("DROP DATABASE %v", mysqlDBName)) if err != nil { logger.Warn(fmt.Sprintf("error dropping mydb in mysql :: %v", err)) } @@ -22,17 +24,28 @@ func setupMySQL() error { _, err = mysqlDB.ExecContext(ctx, "CREATE DATABASE mydb") if err != nil { - return fmt.Errorf("error creating database :: %v", err) + return connectionInfo, fmt.Errorf("error creating database :: %v", err) } mysqlDB, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%v)/%s", mysqlUser, mysqlPassword, mysqlHost, mysqlPort, "mydb")) if err != nil { - return fmt.Errorf("error creating mysql connection pool :: %v", err) + return connectionInfo, fmt.Errorf("error creating mysql connection pool :: %v", err) } err = mysqlDB.Ping() if err != nil { - return fmt.Errorf("error pinging mysql :: %v", err) + return connectionInfo, fmt.Errorf("error pinging mysql :: %v", err) + } + + connectionInfo = ConnectionInfo{ + SystemType: "mysql", + Host: mysqlHost, + Port: mysqlPort, + User: mysqlUser, + Password: mysqlPassword, + DBName: mysqlDBName, + ConnectionString: fmt.Sprintf("%s:%s@tcp(%s:%v)/%s?parseTime=true&loc=US%%2FPacific", mysqlUser, mysqlPassword, mysqlHost, mysqlPort, "mydb"), + Table: mysqlTable, } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -79,7 +92,7 @@ CREATE TABLE my_table ( last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )`) if err != nil { - return fmt.Errorf("error creating my_table :: %v", err) + return connectionInfo, fmt.Errorf("error creating my_table :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -198,11 +211,11 @@ VALUES ('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1'), ('abc', 'abc', 'This "is" a test', 'This is a test', 'This is a test', 'Test', 'value1', 123456789012345678, 123456789012345678, 12345678, 12345678, 1234567, 1234567, 12345, 12345, 123, 123, 1.23456789012345678, 1.2345678, 123.456, '2023-07-22 12:34:56.765432', '2023-07-22 12:34:56.765432', '2023-07-22', '12:34:56.765432', 2023, 0b110011, 0b110011, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, 0x89504E470D0A1A0A, ST_GeomFromText('POINT(1 1)'), b'1011001101', '{"key": "value"}', 'value1')`) if err != nil { - return fmt.Errorf("failed to insert data: %w", err) + return connectionInfo, fmt.Errorf("failed to insert data: %w", err) } } logger.Info("mysql setup successful") - return nil + return connectionInfo, nil } diff --git a/cmd/tests/oracleSetup.go b/cmd/tests/oracleSetup.go index 164ba7b5..62f31529 100644 --- a/cmd/tests/oracleSetup.go +++ b/cmd/tests/oracleSetup.go @@ -9,7 +9,9 @@ import ( go_ora "github.com/sijms/go-ora/v2" ) -func setupOracle() error { +func setupOracle() (ConnectionInfo, error) { + + connectionInfo := ConnectionInfo{} var ctx context.Context var cancel context.CancelFunc @@ -46,7 +48,7 @@ func setupOracle() error { oracleDB, err = sql.Open("oracle", go_ora.BuildUrl(oracleHost, oraclePort, "mydb", oracleUser, oraclePassword, urlOptions)) if err != nil { logger.Error(fmt.Sprintf("error creating Oracle connection pool :: %v", err)) - return err + return connectionInfo, err } ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) @@ -54,33 +56,51 @@ func setupOracle() error { _, err = oracleDB.ExecContext(ctx, "CREATE TABLESPACE mydb_tablespace DATAFILE '/opt/oracle/oradata/XE/mydb/mydb_tablespace.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M") if err != nil { - logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + logger.Warn(fmt.Sprintf("error creating mydb_tablespace :: %v", err)) } _, err = oracleDB.ExecContext(ctx, "ALTER USER mydb_admin DEFAULT TABLESPACE mydb_tablespace") if err != nil { - logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + logger.Warn(fmt.Sprintf("error setting default tablespace :: %v", err)) } _, err = oracleDB.ExecContext(ctx, "ALTER USER mydb_admin QUOTA UNLIMITED ON mydb_tablespace") if err != nil { - logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + logger.Warn(fmt.Sprintf("error granting quota on tablespace :: %v", err)) } _, err = oracleDB.ExecContext(ctx, "GRANT SYSDBA TO mydb_admin") if err != nil { - logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + logger.Warn(fmt.Sprintf("error granting sysdba :: %v", err)) } _, err = oracleDB.ExecContext(ctx, "grant create table to mydb_admin") if err != nil { - logger.Warn(fmt.Sprintf("error opening mydb :: %v", err)) + logger.Warn(fmt.Sprintf("error granting creat table :: %v", err)) } - oracleDB, err = sql.Open("oracle", go_ora.BuildUrl(oracleHost, oraclePort, "mydb", "mydb_admin", oraclePassword, urlOptions)) + dsn := go_ora.BuildUrl(oracleHost, oraclePort, "mydb", "mydb_admin", oraclePassword, urlOptions) + + oracleDB, err = sql.Open("oracle", dsn) if err != nil { - logger.Error(fmt.Sprintf("error creating Oracle connection pool :: %v", err)) - return err + return connectionInfo, fmt.Errorf("error creating Oracle connection pool :: %v", err) + } + + err = oracleDB.Ping() + if err != nil { + return connectionInfo, fmt.Errorf("error pinging Oracle :: %v", err) + } + + connectionInfo = ConnectionInfo{ + SystemType: "oracle", + Host: oracleHost, + Port: oraclePort, + User: oracleUser, + Password: oraclePassword, + DBName: oracleDBName, + ConnectionString: dsn, + Schema: "mydb_admin", + Table: oracleTable, } ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) @@ -96,7 +116,7 @@ func setupOracle() error { _, err = oracleDB.ExecContext(ctx, "delete from mydb_admin.my_table") if err != nil { - return fmt.Errorf("error deleting from my_table :: %v", err) + return connectionInfo, fmt.Errorf("error deleting from my_table :: %v", err) } ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) @@ -111,7 +131,7 @@ BEGIN END; `) if err != nil { - return fmt.Errorf("error creating trg_my_table_last_modified :: %v", err) + return connectionInfo, fmt.Errorf("error creating trg_my_table_last_modified :: %v", err) } for i := 0; i < 1000; i++ { @@ -121,7 +141,7 @@ END; _, err = oracleDB.ExecContext(ctx, ` INSERT INTO mydb_admin.my_table (my_nchar, my_number, my_float, my_varchar2, my_date, my_binaryfloat, my_binarydouble, my_raw, my_char, my_timestamp, my_timestamptz, my_intervalym, my_intervalds, my_timestampltz, my_clob, my_blob, my_nclob, my_varchar) VALUES (N'A CHAR', 123.45, 123.45, 'VARCHAR2 column', TO_DATE('2015-09-29', 'YYYY-MM-DD'), 123.45, 123.45, hextoraw('53756D6D6572'), 'C', TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), TO_TIMESTAMP_TZ('2015-08-10 12:34:56.765432 -07:00', 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM'), INTERVAL '5-2' YEAR TO MONTH, INTERVAL '4 03:02:01' DAY TO SECOND, TO_TIMESTAMP('2015-08-10 12:34:56.765432', 'YYYY-MM-DD HH24:MI:SS.FF6'), 'This is a CLOB', TO_BLOB(HEXTORAW('4D7953616D706C6544617461')), N'This ''is'' a NCLOB', 'VARCHAR column')`) if err != nil { - return fmt.Errorf("failed to insert data: %w", err) + return connectionInfo, fmt.Errorf("failed to insert data: %w", err) } } @@ -171,10 +191,10 @@ INSERT INTO mydb_admin.my_table ( NULL )`) if err != nil { - return fmt.Errorf("failed to insert data: %w", err) + return connectionInfo, fmt.Errorf("failed to insert data: %w", err) } logger.Info("Oracle setup successful") - return nil + return connectionInfo, nil } diff --git a/cmd/tests/postgresqlSetup.go b/cmd/tests/postgresqlSetup.go index 2f3aaa46..a36ae43c 100644 --- a/cmd/tests/postgresqlSetup.go +++ b/cmd/tests/postgresqlSetup.go @@ -54,9 +54,6 @@ func setupPostgreSQL() (ConnectionInfo, error) { Table: postgresqlTable, } - fmt.Println("CONN STIRNG") - fmt.Println(connectionInfo.ConnectionString) - ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) defer cancel() diff --git a/cmd/tests/snowflakeSetup.go b/cmd/tests/snowflakeSetup.go new file mode 100644 index 00000000..075a6847 --- /dev/null +++ b/cmd/tests/snowflakeSetup.go @@ -0,0 +1,195 @@ +package main + +import ( + "context" + "database/sql" + "fmt" + "time" +) + +func setupSnowflake() (ConnectionInfo, error) { + + connectionInfo := ConnectionInfo{} + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err := snowflakeDB.ExecContext(ctx, fmt.Sprintf("DROP DATABASE %v", snowflakeDBName)) + if err != nil { + logger.Warn(fmt.Sprintf("error dropping mydb in snowflake :: %v", err)) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + _, err = snowflakeDB.ExecContext(ctx, "CREATE DATABASE mydb") + if err != nil { + return connectionInfo, fmt.Errorf("error creating database :: %v", err) + } + + dsn := fmt.Sprintf("%v:%v@%v/%v/%v", snowflakeUser, snowflakePassword, snowflakeAccount, snowflakeDBName, snowflakeSchema) + + snowflakeDB, err = sql.Open("snowflake", dsn) + if err != nil { + return connectionInfo, fmt.Errorf("error creating snowflake connection pool :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + err = snowflakeDB.PingContext(ctx) + if err != nil { + return connectionInfo, fmt.Errorf("error pinging snowflake :: %v", err) + } + + connectionInfo = ConnectionInfo{ + SystemType: "snowflake", + Account: snowflakeAccount, + User: snowflakeUser, + Password: snowflakePassword, + DBName: snowflakeDBName, + ConnectionString: dsn, + Schema: snowflakeSchema, + Table: snowflakeTable, + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = snowflakeDB.ExecContext(ctx, "DROP SEQUENCE IF EXISTS my_table_seq") + if err != nil { + return connectionInfo, fmt.Errorf("error dropping sequence :: %v", err) + } + + _, err = snowflakeDB.ExecContext(ctx, "CREATE SEQUENCE my_table_seq START 1 INCREMENT 1;") + if err != nil { + return connectionInfo, fmt.Errorf("error creating sequence :: %v", err) + } + + _, err = snowflakeDB.ExecContext(ctx, ` +CREATE TABLE my_table ( + my_serial BIGINT DEFAULT my_table_seq.NEXTVAL, + my_varchar VARCHAR(100), + my_number NUMBER(10, 5), + my_int INTEGER, + my_bigint BIGINT, + my_float FLOAT, + my_double DOUBLE, + my_boolean BOOLEAN, + my_date DATE, + my_time TIME, + my_timestamp TIMESTAMP, + my_timestampltz TIMESTAMP_LTZ, + my_timestampntz TIMESTAMP_NTZ, + my_timestamptz TIMESTAMP_TZ, + my_variant VARIANT, + my_object OBJECT, + my_array ARRAY, + my_binary BINARY, + my_geography GEOGRAPHY +)`) + if err != nil { + return connectionInfo, fmt.Errorf("error creating my_table :: %v", err) + } + + for i := 0; i < 10; i++ { + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = snowflakeDB.ExecContext(ctx, ` +INSERT INTO my_table ( + my_varchar, + my_number, + my_int, + my_bigint, + my_float, + my_double, + my_boolean, + my_date, + my_time, + my_timestamp, + my_timestampltz, + my_timestampntz, + my_timestamptz, + my_variant, + my_object, + my_array, + my_binary, + my_geography +) +SELECT + 'Sample Text' AS my_varchar, + 12345.67890 AS my_number, + 42 AS my_int, + 1234567890123 AS my_bigint, + 3.14159 AS my_float, + 2.7182818284 AS my_double, + TRUE AS my_boolean, + '2023-01-01'::DATE AS my_date, + '12:34:56'::TIME AS my_time, + '2023-01-01 12:34:56'::TIMESTAMP AS my_timestamp, + '2023-01-01 12:34:56 -05:00'::TIMESTAMP_LTZ AS my_timestampltz, + '2023-01-01 12:34:56'::TIMESTAMP_NTZ AS my_timestampntz, + '2023-01-01 12:34:56 -05:00'::TIMESTAMP_TZ AS my_timestamptz, + PARSE_JSON('{"key": "value"}') AS my_variant, + OBJECT_CONSTRUCT('key1', 'value1') AS my_object, + ARRAY_CONSTRUCT(1, 2, 3) AS my_array, + TO_BINARY('FFEE', 'HEX') AS my_binary, + TO_GEOGRAPHY('POINT(-122.35 47.65)') AS my_geography`) + } + if err != nil { + return connectionInfo, fmt.Errorf("error inserting data :: %v", err) + } + + ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + _, err = snowflakeDB.ExecContext(ctx, ` +INSERT INTO my_table ( + my_varchar, + my_number, + my_int, + my_bigint, + my_float, + my_double, + my_boolean, + my_date, + my_time, + my_timestamp, + my_timestampltz, + my_timestampntz, + my_timestamptz, + my_variant, + my_object, + my_array, + my_binary, + my_geography +) +VALUES ( + NULL, -- my_varchar + NULL, -- my_number + NULL, -- my_int + NULL, -- my_bigint + NULL, -- my_float + NULL, -- my_double + NULL, -- my_boolean + NULL, -- my_date + NULL, -- my_time + NULL, -- my_timestamp + NULL, -- my_timestampltz + NULL, -- my_timestampntz + NULL, -- my_timestamptz + NULL, -- my_variant + NULL, -- my_object + NULL, -- my_array + NULL, -- my_binary + NULL -- my_geography +)`) + if err != nil { + return connectionInfo, fmt.Errorf("error inserting data :: %v", err) + } + + logger.Info("snowflake setup successful") + + return connectionInfo, nil +} diff --git a/docker-compose.yml b/docker-compose.yml index d257b3ec..5663d1e4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,6 +12,17 @@ services: limits: memory: 4G + tests: + build: + context: . + dockerfile: tests.dockerfile + container_name: tests + platform: linux/amd64 + deploy: + resources: + limits: + memory: 4G + mssql: image: mcr.microsoft.com/mssql/server platform: linux/amd64 diff --git a/tests.dockerfile b/tests.dockerfile new file mode 100644 index 00000000..55e46bed --- /dev/null +++ b/tests.dockerfile @@ -0,0 +1,10 @@ +FROM debian:12.1 + +RUN apt-get update +RUN apt-get install -y curl postgresql-client libaio1 unixodbc unixodbc-dev unzip + +WORKDIR / + +COPY ./bin/tests /usr/local/bin/tests +COPY ./LICENSE.MD /SQLPIPE-LICENSE.MD +CMD ["tail", "-f", "/dev/null"] \ No newline at end of file