diff --git a/.gitignore b/.gitignore index 0e2217d..708d77e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.zip node_modules test_export +test/app_100.zip diff --git a/README.md b/README.md index e7d71fc..409950f 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,8 @@ INSTALLATION CHANGELOG +- 2.3.0 (2020-11-29) + - Function BackApp: Rework table data export format INSERT - thanks to Connor McDonald for his blog post [Generating INSERT scripts that run fast!](https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/) - 2.2.0 (2020-10-25) - Function BackApp: - Fixed: #4 - plex.backapp throws "ORA-00904: DBMS_JAVA.LONGNAME: invalid identifier" in Oracle instances without a JVM @@ -87,7 +89,7 @@ SIGNATURE ```sql PACKAGE PLEX AUTHID current_user IS c_plex_name CONSTANT VARCHAR2(30 CHAR) := 'PLEX - PL/SQL Export Utilities'; -c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.2.0'; +c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.3.0'; c_plex_url CONSTANT VARCHAR2(40 CHAR) := 'https://github.com/ogobrecht/plex'; c_plex_license CONSTANT VARCHAR2(10 CHAR) := 'MIT'; c_plex_license_url CONSTANT VARCHAR2(60 CHAR) := 'https://github.com/ogobrecht/plex/blob/master/LICENSE.txt'; @@ -175,7 +177,7 @@ EXAMPLE ZIP FILE SQL*Plus -- Example Windows: certutil -decode app_100.zip.base64 app_100.zip -- Example Mac: base64 -D -i app_100.zip.base64 -o app_100.zip -- Example Linux: base64 -d app_100.zip.base64 > app_100.zip -set verify off feedback off heading off termout off +set verify off feedback off heading off set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 whenever sqlerror exit sql.sqlcode rollback variable contents clob @@ -188,9 +190,11 @@ BEGIN p_include_templates => true))); END; / +set termout off spool "app_100.zip.base64" print contents spool off +set termout on ``` SIGNATURE diff --git a/package.json b/package.json index 1275463..58cb952 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,16 @@ "url": "https://github.com/ogobrecht/plex.git" }, "scripts": { - "prebuild": "npx ploc --in src/PLEX.pks --out README.md", - "build": "node src/build.js", - "postbuild": "echo exit | sqlplus -S /@playground @plex_install.sql", - "watch": "chokidar src/PLEX.pks src/PLEX.pkb src/plex_install.sql --initial -c \"npm run build\"", - "test-ccflags": "cd src && echo exit | sqlplus -S /@playground @plex_test_ccflags.sql && cd ..", - "test-export": "cd src && echo exit | sqlplus -S /@playground @plex_test_export.sql && cd .." + "prebuild": "npx ploc --in src/PLEX.pks --out README.md", + "build": "node src/build.js", + "postbuild": "echo exit | sqlplus -S /@playground @plex_install.sql", + "watch": "chokidar src/PLEX.pks src/PLEX.pkb src/plex_install.sql --initial -c \"npm run build\"", + "test-ccflags": "cd test && echo exit | sqlplus -S /@playground @test_ccflags.sql && cd ..", + "test-export": "cd test && echo exit | sqlplus -S /@playground @test_export.sql && cd ..", + "test-types-table": "cd test && echo exit | sqlplus -S /@playground @test_types_1_table.sql && cd ..", + "test-types-data": "cd test && echo exit | sqlplus -S /@playground @test_types_2_data.sql 100 && cd ..", + "test-types-export": "cd test && echo exit | sqlplus -S /@playground @test_types_3_export.sql && cd ..", + "test-types-import": "cd test && echo exit | sqlplus -S /@playground @test_types_4_import.sql && cd .." }, "devDependencies": { "chokidar-cli": "^2.1.0", diff --git a/plex_install.sql b/plex_install.sql index a53b572..0f18432 100644 --- a/plex_install.sql +++ b/plex_install.sql @@ -47,7 +47,7 @@ END; prompt Compile package plex (spec) CREATE OR REPLACE PACKAGE PLEX AUTHID current_user IS c_plex_name CONSTANT VARCHAR2(30 CHAR) := 'PLEX - PL/SQL Export Utilities'; -c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.2.0'; +c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.3.0'; c_plex_url CONSTANT VARCHAR2(40 CHAR) := 'https://github.com/ogobrecht/plex'; c_plex_license CONSTANT VARCHAR2(10 CHAR) := 'MIT'; c_plex_license_url CONSTANT VARCHAR2(60 CHAR) := 'https://github.com/ogobrecht/plex/blob/master/LICENSE.txt'; @@ -85,6 +85,8 @@ INSTALLATION CHANGELOG +- 2.3.0 (2020-11-29) + - Function BackApp: Rework table data export format INSERT - thanks to Connor McDonald for his blog post [Generating INSERT scripts that run fast!](https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/) - 2.2.0 (2020-10-25) - Function BackApp: - Fixed: #4 - plex.backapp throws "ORA-00904: DBMS_JAVA.LONGNAME: invalid identifier" in Oracle instances without a JVM @@ -282,7 +284,7 @@ EXAMPLE ZIP FILE SQL*Plus -- Example Windows: certutil -decode app_100.zip.base64 app_100.zip -- Example Mac: base64 -D -i app_100.zip.base64 -o app_100.zip -- Example Linux: base64 -d app_100.zip.base64 > app_100.zip -set verify off feedback off heading off termout off +set verify off feedback off heading off set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 whenever sqlerror exit sql.sqlcode rollback variable contents clob @@ -295,9 +297,11 @@ BEGIN p_include_templates => true))); END; {{/}} +set termout off spool "app_100.zip.base64" print contents spool off +set termout on ``` **/ @@ -655,16 +659,16 @@ c_vc2_max_size CONSTANT PLS_INTEGER := 32767; c_zip_local_file_header CONSTANT RAW(4) := hextoraw('504B0304'); c_zip_end_of_central_directory CONSTANT RAW(4) := hextoraw('504B0506'); -- numeric type identfiers -c_number CONSTANT PLS_INTEGER := 2; -- FLOAT +c_number CONSTANT PLS_INTEGER := 2; -- FLOAT c_binary_float CONSTANT PLS_INTEGER := 100; c_binary_double CONSTANT PLS_INTEGER := 101; -- string type identfiers -c_char CONSTANT PLS_INTEGER := 96; -- NCHAR -c_varchar2 CONSTANT PLS_INTEGER := 1; -- NVARCHAR2 +c_char CONSTANT PLS_INTEGER := 96; -- NCHAR +c_varchar2 CONSTANT PLS_INTEGER := 1; -- NVARCHAR2 c_long CONSTANT PLS_INTEGER := 8; c_clob CONSTANT PLS_INTEGER := 112; -- NCLOB c_xmltype CONSTANT PLS_INTEGER := 109; -- ANYDATA, ANYDATASET, ANYTYPE, Object type, VARRAY, Nested table -c_rowid CONSTANT PLS_INTEGER := 11; +c_rowid CONSTANT PLS_INTEGER := 69; c_urowid CONSTANT PLS_INTEGER := 208; -- binary type identfiers c_raw CONSTANT PLS_INTEGER := 23; @@ -674,8 +678,8 @@ c_bfile CONSTANT PLS_INTEGER := 114; -- date type identfiers c_date CONSTANT PLS_INTEGER := 12; c_timestamp CONSTANT PLS_INTEGER := 180; -c_timestamp_with_time_zone CONSTANT PLS_INTEGER := 181; -c_timestamp_with_local_tz CONSTANT PLS_INTEGER := 231; +c_timestamp_tz CONSTANT PLS_INTEGER := 181; +c_timestamp_ltz CONSTANT PLS_INTEGER := 231; -- interval type identfiers c_interval_year_to_month CONSTANT PLS_INTEGER := 182; c_interval_day_to_second CONSTANT PLS_INTEGER := 183; @@ -843,8 +847,10 @@ PROCEDURE util_clob_query_to_csv ( p_header_prefix IN VARCHAR2 DEFAULT NULL); PROCEDURE util_clob_table_to_insert ( - p_table_name IN VARCHAR2, - p_max_rows IN NUMBER DEFAULT 1000); + p_table_name IN VARCHAR2, + p_data_scn IN NUMBER, + p_max_rows IN NUMBER DEFAULT 1000, + p_insert_all_size IN NUMBER DEFAULT 10); PROCEDURE util_clob_create_runtime_log (p_export_files IN OUT NOCOPY tab_export_files); @@ -1447,7 +1453,7 @@ IS v_cursor PLS_INTEGER; v_ignore_me PLS_INTEGER; v_data_count PLS_INTEGER := 0; - v_col_cnt PLS_INTEGER; + v_col_count PLS_INTEGER; v_desc_tab dbms_sql.desc_tab3; v_buffer_varchar2 VARCHAR2(32767 CHAR); v_buffer_clob CLOB; @@ -1486,8 +1492,8 @@ BEGIN dbms_sql.native); -- https://support.esri.com/en/technical-article/000010110 -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html - dbms_sql.describe_columns3(v_cursor, v_col_cnt, v_desc_tab); - FOR i IN 1..v_col_cnt LOOP + dbms_sql.describe_columns3(v_cursor, v_col_count, v_desc_tab); + FOR i IN 1..v_col_count LOOP IF v_desc_tab(i).col_type = c_clob THEN dbms_sql.define_column(v_cursor, i, v_buffer_clob); ELSIF v_desc_tab(i).col_type = c_xmltype THEN @@ -1504,7 +1510,7 @@ BEGIN -- create header util_clob_append(p_header_prefix); - FOR i IN 1..v_col_cnt LOOP + FOR i IN 1..v_col_count LOOP IF i > 1 THEN util_clob_append(p_delimiter); END IF; @@ -1517,7 +1523,7 @@ BEGIN -- create data LOOP EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; - FOR i IN 1..v_col_cnt LOOP + FOR i IN 1..v_col_count LOOP IF i > 1 THEN util_clob_append(p_delimiter); END IF; @@ -1533,14 +1539,16 @@ BEGIN END IF; ELSIF v_desc_tab(i).col_type = c_xmltype THEN dbms_sql.column_value(v_cursor, i, v_buffer_xmltype); - v_buffer_clob := v_buffer_xmltype.getclobval(); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - escape_varchar2_buffer_for_csv; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); + IF v_buffer_xmltype IS NOT NULL THEN + v_buffer_clob := v_buffer_xmltype.getclobval(); + IF length(v_buffer_clob) <= c_vc2_max_size THEN + v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); + escape_varchar2_buffer_for_csv; + util_clob_append(v_buffer_varchar2); + ELSE + v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; + util_clob_append(v_buffer_varchar2); + END IF; END IF; ELSIF v_desc_tab(i).col_type = c_long THEN dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); @@ -1565,42 +1573,182 @@ BEGIN END IF; END util_clob_query_to_csv; +-------------------------------------------------------------------------------------------------------------------------------- + PROCEDURE util_clob_table_to_insert ( - p_table_name IN VARCHAR2, - p_max_rows IN NUMBER DEFAULT 1000) + p_table_name IN VARCHAR2, + p_data_scn IN NUMBER, + p_max_rows IN NUMBER DEFAULT 1000, + p_insert_all_size IN NUMBER DEFAULT 10) IS + v_query VARCHAR2(32767); v_cursor PLS_INTEGER; v_ignore_me PLS_INTEGER; v_data_count PLS_INTEGER := 0; - v_col_cnt PLS_INTEGER; + v_col_count PLS_INTEGER; v_desc_tab dbms_sql.desc_tab3; + v_table_insert_prefix VARCHAR2(4000); + v_nls_numeric_characters VARCHAR2(30); + v_nls_date_format VARCHAR2(30); + v_nls_timestamp_format VARCHAR2(30); + v_nls_timestamp_tz_format VARCHAR2(30); + c_sqlplus_max_line_length CONSTANT PLS_INTEGER := 2400; + v_line_cache VARCHAR2(2498 CHAR); + v_line_size PLS_INTEGER := 0; v_buffer_varchar2 VARCHAR2(32767 CHAR); v_buffer_clob CLOB; v_buffer_xmltype XMLTYPE; - v_buffer_long LONG; +-- v_buffer_long LONG; v_buffer_long_length PLS_INTEGER; --------------------------------------------------------------------------------------------------------------------------------- + ---------------------------------------- - PROCEDURE prepare_varchar2_buffer_for_scripting IS - c_single_quote constant varchar2(1) := q'[']'; - c_double_quote constant varchar2(2) := q'['']'; + PROCEDURE set_session_nls_params IS BEGIN - IF v_buffer_varchar2 IS NOT NULL THEN - -- if we have the single quote character in the string then we - -- have to double them - v_buffer_varchar2 := c_single_quote || - case when instr(v_buffer_varchar2, c_single_quote) > 0 - then replace(v_buffer_varchar2, c_single_quote, c_double_quote) - else v_buffer_varchar2 - end || c_single_quote; - END IF; + -- Save current values. + for i in (SELECT parameter, value FROM nls_session_parameters) loop + case i.parameter + when 'NLS_NUMERIC_CHARACTERS' then v_nls_numeric_characters := i.value; + when 'NLS_DATE_FORMAT' then v_nls_date_format := i.value; + when 'NLS_TIMESTAMP_FORMAT' then v_nls_timestamp_format := i.value; + when 'NLS_TIMESTAMP_TZ_FORMAT' then v_nls_timestamp_tz_format := i.value; + else + null; + end case; + end loop; + -- Set new values. + dbms_session.set_nls('nls_numeric_characters' , '''.,'''); + dbms_session.set_nls('nls_date_format' , '''yyyy-mm-dd hh24:mi:ss'''); + dbms_session.set_nls('nls_timestamp_format' , '''yyyy-mm-dd hh24:mi:ssxff'''); + dbms_session.set_nls('nls_timestamp_tz_format', '''yyyy-mm-dd hh24:mi:ssxff tzr'''); + END set_session_nls_params; + + ---------------------------------------- + + PROCEDURE recover_session_nls_params IS + BEGIN + dbms_session.set_nls('nls_numeric_characters' , '''' || v_nls_numeric_characters || ''''); + dbms_session.set_nls('nls_date_format' , '''' || v_nls_date_format || ''''); + dbms_session.set_nls('nls_timestamp_format' , '''' || v_nls_timestamp_format || ''''); + dbms_session.set_nls('nls_timestamp_tz_format', '''' || v_nls_timestamp_tz_format || ''''); + END recover_session_nls_params; + + ---------------------------------------- + + FUNCTION quote_string (p_string VARCHAR2) RETURN VARCHAR2 IS + v_string varchar2(5000 char); + BEGIN + case + when instr(p_string, '''') = 0 then v_string := '''' || p_string || ''''; + when instr(p_string, '^''') = 0 then v_string := 'q''^' || p_string || '^'''; + when instr(p_string, '`''') = 0 then v_string := 'q''`' || p_string || '`'''; + when instr(p_string, '#''') = 0 then v_string := 'q''#' || p_string || '#'''; + when instr(p_string, '|''') = 0 then v_string := 'q''|' || p_string || '|'''; + when instr(p_string, '!''') = 0 then v_string := 'q''!' || p_string || '!'''; + when instr(p_string, '}''') = 0 then v_string := 'q''{' || p_string || '}'''; + when instr(p_string, ']''') = 0 then v_string := 'q''[' || p_string || ']'''; + when instr(p_string, '>''') = 0 then v_string := 'q''<' || p_string || '>'''; + when instr(p_string, ')''') = 0 then v_string := 'q''(' || p_string || ')'''; + else + v_string := '''' || replace(p_string, '''', '''''') || ''''; + end case; + + -- SQL*Plus specific: + -- SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer + -- (Doc ID 2377701.1, https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1) + if regexp_instr(v_string,';$',1,1,0,'m') = 0 then + return v_string; + else + return ('regexp_replace(' || regexp_replace(v_string, ';$',';!',1,0,'m') || ','';!$'','';'',1,0,''m'')'); + end if; + + END quote_string; + + ---------------------------------------- + + PROCEDURE line_append (p_content IN VARCHAR2) IS + BEGIN + v_line_cache := v_line_cache || p_content; EXCEPTION WHEN value_error THEN - v_buffer_varchar2 := 'Value skipped - escaped text larger then ' || c_vc2_max_size || ' characters'; - END prepare_varchar2_buffer_for_scripting; + util_clob_append(v_line_cache || c_crlf ); + v_line_cache := p_content; + END line_append; - FUNCTION get_order_by_list RETURN VARCHAR2 IS + ---------------------------------------- + + PROCEDURE line_flush_cache IS + BEGIN + util_clob_append(v_line_cache || c_crlf); + v_line_cache := null; + END line_flush_cache; + + ---------------------------------------- + + PROCEDURE process_varchar2_buffer(p_type varchar2) IS + v_length PLS_INTEGER; + v_offset PLS_INTEGER; + BEGIN + v_length := nvl(length(v_buffer_varchar2), 0); + IF v_length = 0 THEN + line_append('NULL'); + ELSE + CASE p_type + WHEN 'NUMBER' THEN + line_append(v_buffer_varchar2); + WHEN 'STRING' THEN + if v_length <= c_sqlplus_max_line_length then + line_append(quote_string(v_buffer_varchar2)); + else + v_offset := 1; + while v_offset <= v_length loop + line_append(case when v_offset != 1 then '|| ' end || quote_string(substr(v_buffer_varchar2, v_offset, c_sqlplus_max_line_length))); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + end if; + WHEN 'RAW' THEN + if v_length <= c_sqlplus_max_line_length then + line_append('utl_raw.cast_to_raw(' || quote_string(v_buffer_varchar2) || ')'); + else + v_offset := 1; + line_append ('utl_raw.cast_to_raw('); + while v_offset <= v_length loop + line_append( case when v_offset != 1 then '|| ' end || quote_string(substr(v_buffer_varchar2, v_offset, c_sqlplus_max_line_length)) ); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + line_append (')'); + end if; + END CASE; + v_buffer_varchar2 := null; + END IF; + END process_varchar2_buffer; + + ---------------------------------------- + + PROCEDURE process_clob_buffer IS + v_length pls_integer; + v_offset pls_integer; + BEGIN + v_length := nvl(length(v_buffer_clob), 0); + if v_length = 0 then + line_append('NULL'); + else + if v_length <= c_sqlplus_max_line_length then + line_append(quote_string(substr(v_buffer_clob, 1, c_sqlplus_max_line_length))); + else + v_offset := 1; + while v_offset <= v_length loop + line_append(case when v_offset != 1 then '|| ' end || 'to_clob(' || quote_string(substr(v_buffer_clob, v_offset, c_sqlplus_max_line_length)) || ')' ); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + end if; + v_buffer_clob := null; + end if; + END process_clob_buffer; + + ---------------------------------------- + + FUNCTION get_order_by_clause RETURN VARCHAR2 IS v_return varchar2(4000); begin -- try to use pk column list ... @@ -1646,126 +1794,155 @@ IS end loop; end if; - return v_return; - end; + return case when v_return is not null then ' order by ' || v_return else null end; + end get_order_by_clause; + + ---------------------------------------- + + PROCEDURE parse_query_and_describe_columns IS + BEGIN + FOR i IN ( + select 'select ' || listagg(column_name, ', ') within group (order by column_id) || ' from ' || table_name as query + from user_tab_cols + where table_name = p_table_name + and user_generated = 'YES' + and virtual_column = 'NO' + group by table_name + ) LOOP + v_query := i.query; + END LOOP; + IF v_query IS NOT NULL THEN + v_cursor := dbms_sql.open_cursor; + dbms_sql.parse( + v_cursor, + v_query || ' as of scn ' || p_data_scn || get_order_by_clause, + dbms_sql.native); + -- https://support.esri.com/en/technical-article/000010110 + -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html + dbms_sql.describe_columns3(v_cursor, v_col_count, v_desc_tab); + FOR i IN 1..v_col_count LOOP + IF v_desc_tab(i).col_type = c_clob THEN + dbms_sql.define_column(v_cursor, i, v_buffer_clob); + ELSIF v_desc_tab(i).col_type = c_long THEN + dbms_sql.define_column_long(v_cursor, i); + ELSE + dbms_sql.define_column(v_cursor, i, v_buffer_varchar2, c_vc2_max_size); + END IF; + v_table_insert_prefix := v_table_insert_prefix || v_desc_tab(i).col_name || ','; + END LOOP; + v_table_insert_prefix := + case when p_insert_all_size > 0 + then 'into ' + else 'insert into ' + end || p_table_name || '(' || rtrim(v_table_insert_prefix, ',' ) || ') values ('; + v_ignore_me := dbms_sql.execute(v_cursor); + END IF; + END parse_query_and_describe_columns; + + ---------------------------------------- + + -- SQL*Plus specific: + -- SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer + -- (Doc ID 2377701.1, https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1) + + PROCEDURE create_header IS + BEGIN + util_clob_append('-- Script generated by PLEX version ' || c_plex_version || ' - more infos here: ' || c_plex_url || c_crlf); + util_clob_append('-- Performance Hacks by Connor McDonald: https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/' || c_crlf); + util_clob_append('-- For strange line end replacements a big thank to SQL*Plus: https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1 (SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer)' || c_crlf); + util_clob_append('prompt Insert into ' || p_table_name || c_crlf); + util_clob_append('timing start inserts' || c_crlf); + util_clob_append('set define off feedback off sqlblanklines on' || c_crlf); + util_clob_append('alter session set cursor_sharing = force;' || c_crlf); + util_clob_append(q'^alter session set nls_numeric_characters = '.,';^' || c_crlf); + util_clob_append(q'^alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';^' || c_crlf); + util_clob_append(q'^alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ssxff';^' || c_crlf); + util_clob_append(q'^alter session set nls_timestamp_tz_format = 'yyyy-mm-dd hh24:mi:ssxff tzr';^' || c_crlf); + END create_header; + + ---------------------------------------- + + PROCEDURE create_data IS + BEGIN + LOOP + EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; + v_data_count := v_data_count + 1; + if v_data_count = 1 then + create_header; + end if; + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) = 1 then + util_clob_append('insert all' || c_crlf); + end if; + line_append(v_table_insert_prefix); + --> process row + FOR i IN 1..v_col_count LOOP + IF v_desc_tab(i).col_type = c_clob THEN + dbms_sql.column_value(v_cursor, i, v_buffer_clob); + process_clob_buffer; + ELSIF v_desc_tab(i).col_type = c_long THEN + dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); + if v_buffer_long_length > c_vc2_max_size then + v_buffer_varchar2 := null; + end if; + process_varchar2_buffer('STRING'); + ELSIF v_desc_tab(i).col_type = c_xmltype THEN + dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); + v_buffer_varchar2 := regexp_replace(v_buffer_varchar2, '\s*$', null); + process_varchar2_buffer('STRING'); + ELSE + dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); + IF v_desc_tab(i).col_type IN (c_number, c_binary_float, c_binary_double) THEN + process_varchar2_buffer('NUMBER'); + ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN + process_varchar2_buffer('RAW'); + ELSE + process_varchar2_buffer('STRING'); + END IF; + END IF; + if i != v_col_count then + line_append(','); + else + line_append(')' || case when p_insert_all_size < 1 then ';' end); + line_flush_cache; + end if; + END LOOP; + --< end process row + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) = 0 then + util_clob_append('select * from dual;' || c_crlf); + end if; + + END LOOP; + dbms_sql.close_cursor(v_cursor); + END create_data; + + ---------------------------------------- + + PROCEDURE create_footer IS + BEGIN + if v_data_count = 0 then + util_clob_append('Prompt Nothing to insert - there was no data in the source table ' || p_table_name || c_crlf); + else + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) != 0 then + util_clob_append('select * from dual;' || c_crlf); + end if; + util_clob_append('commit;' || c_crlf); + util_clob_append('alter session set cursor_sharing = exact;' || c_crlf); + util_clob_append('timing stop' || c_crlf); + end if; + util_clob_append('' || c_crlf); + END create_footer; + + ---------------------------------------- BEGIN IF p_table_name IS NOT NULL THEN - v_cursor := dbms_sql.open_cursor; - dbms_sql.parse( - v_cursor, - 'select * from ' || p_table_name || ' order by ' || get_order_by_list, - dbms_sql.native); - -- https://support.esri.com/en/technical-article/000010110 - -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html - dbms_sql.describe_columns3(v_cursor, v_col_cnt, v_desc_tab); - FOR i IN 1..v_col_cnt LOOP - IF v_desc_tab(i).col_type = c_clob THEN - dbms_sql.define_column(v_cursor, i, v_buffer_clob); - ELSIF v_desc_tab(i).col_type = c_xmltype THEN - dbms_sql.define_column(v_cursor, i, v_buffer_xmltype); - ELSIF v_desc_tab(i).col_type = c_long THEN - dbms_sql.define_column_long(v_cursor, i); - ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN - NULL; --> we ignore binary data types - ELSE - dbms_sql.define_column(v_cursor, i, v_buffer_varchar2, c_vc2_max_size); - END IF; - END LOOP; - v_ignore_me := dbms_sql.execute(v_cursor); - - -- create header - util_clob_append('-- Script generated by PLEX version ' || c_plex_version || c_crlf); - util_clob_append('-- More infos here: ' || c_plex_url || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('set define off feedback off timing on' || c_crlf); - util_clob_append('prompt Insert into ' || p_table_name || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('DECLARE' || c_crlf); - util_clob_append(' TYPE row_collection IS TABLE OF ' || p_table_name || '%rowtype INDEX BY PLS_INTEGER;' || c_crlf); - util_clob_append(' t row_collection;' || c_crlf); - util_clob_append('BEGIN' || c_crlf); - - -- create data - LOOP - EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; - v_data_count := v_data_count + 1; - -- start new table row - util_clob_append(' --' || c_crlf); - - FOR i IN 1..v_col_cnt LOOP - -- start column - util_clob_append(' t(' || v_data_count || ').' || v_desc_tab(i).col_name || ' := '); - - IF v_desc_tab(i).col_type = c_clob THEN - dbms_sql.column_value(v_cursor, i, v_buffer_clob); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'CLOB value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); - END IF; - ELSIF v_desc_tab(i).col_type = c_xmltype THEN - dbms_sql.column_value(v_cursor, i, v_buffer_xmltype); - v_buffer_clob := v_buffer_xmltype.getclobval(); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); - END IF; - ELSIF v_desc_tab(i).col_type = c_long THEN - dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); - IF v_buffer_long_length <= c_vc2_max_size THEN - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - util_clob_append('LONG value skipped - larger then ' || c_vc2_max_size || ' characters'); - END IF; - ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN - util_clob_append('Binary data type skipped - currently not supported'); - ELSE - dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - END IF; - -- end column - util_clob_append(';' || c_crlf); - END LOOP; - END LOOP; - dbms_sql.close_cursor(v_cursor); - - -- create forall insert - if v_data_count = 0 then - util_clob_append(' NULL; -- No data found in table :-(' || c_crlf); - util_clob_append('END;' || c_crlf); - util_clob_append('/' || c_crlf); - else - util_clob_append(' --' || c_crlf); - util_clob_append(' FORALL i IN 1..t.count' || c_crlf); - util_clob_append(' INSERT INTO "' || p_table_name || '" (' || c_crlf); - FOR i IN 1..v_col_cnt LOOP - util_clob_append(' "' || v_desc_tab(i).col_name || '"' - || case when i != v_col_cnt then ',' end - || c_crlf); - end loop; - util_clob_append(' ) VALUES (' || c_crlf); - FOR i IN 1..v_col_cnt LOOP - util_clob_append(' t(i)."' || v_desc_tab(i).col_name || '"' - || case when i != v_col_cnt then ',' end - || c_crlf); - end loop; - util_clob_append(' );' || c_crlf); - util_clob_append('END;' || c_crlf); - util_clob_append('/' || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('COMMIT;' || c_crlf); - util_clob_append('' || c_crlf); - end if; + --dbms_lob.createtemporary(v_buffer_clob, true); + set_session_nls_params; + parse_query_and_describe_columns; + create_data; + create_footer; + recover_session_nls_params; + --dbms_lob.freetemporary(v_buffer_clob); END IF; END util_clob_table_to_insert; @@ -2388,7 +2565,8 @@ SELECT DISTINCT '{{BASE_PATH_APP_BACKEND}}/grants/' || p.privilege || '_on_' || p.table_name || '.sql' AS file_path FROM user_tab_privs p JOIN user_objects o ON p.table_name = o.object_name -WHERE (#NAME_LIKE_EXPRESSIONS#) +WHERE table_name not like 'SYS_PLSQL%' + AND (#NAME_LIKE_EXPRESSIONS#) AND (#NAME_NOT_LIKE_EXPRESSIONS#) ORDER BY privilege, @@ -2629,8 +2807,8 @@ prompt --install_web_services_generated_by_ords PROCEDURE process_data IS TYPE obj_rec_typ IS RECORD ( - table_name VARCHAR2(256), - pk_columns VARCHAR2(4000)); + table_name VARCHAR2(256), + pk_columns VARCHAR2(4000)); v_rec obj_rec_typ; BEGIN util_log_start(p_base_path_data || '/open_tables_cursor'); @@ -2669,7 +2847,7 @@ SELECT table_name, EXIT WHEN v_cur%notfound; -- csv file - IF lower(p_data_format) LIKE '%csv%' THEN + IF upper(p_data_format) LIKE '%CSV%' THEN BEGIN v_file_path := p_base_path_data || '/' || v_rec.table_name || '.csv'; util_log_start(v_file_path); @@ -2692,11 +2870,15 @@ SELECT table_name, END IF; -- insert script - IF lower(p_data_format) LIKE '%insert%' THEN + IF upper(p_data_format) LIKE '%INSERT%' THEN BEGIN v_file_path := p_base_path_data || '/' || v_rec.table_name || '.sql'; util_log_start(v_file_path); - util_clob_table_to_insert(p_table_name => v_rec.table_name); + util_clob_table_to_insert( + p_table_name => v_rec.table_name, + p_data_scn => v_data_scn, + p_max_rows => p_data_max_rows, + p_insert_all_size => to_number(nvl(regexp_substr(p_data_format,'insert:(\d+)',1,1,'i',1), '10'))); util_clob_add_to_export_files( p_export_files => v_export_files, p_name => v_file_path); diff --git a/src/PLEX.pkb b/src/PLEX.pkb index 5be9673..5c14613 100644 --- a/src/PLEX.pkb +++ b/src/PLEX.pkb @@ -16,16 +16,16 @@ c_vc2_max_size CONSTANT PLS_INTEGER := 32767; c_zip_local_file_header CONSTANT RAW(4) := hextoraw('504B0304'); c_zip_end_of_central_directory CONSTANT RAW(4) := hextoraw('504B0506'); -- numeric type identfiers -c_number CONSTANT PLS_INTEGER := 2; -- FLOAT +c_number CONSTANT PLS_INTEGER := 2; -- FLOAT c_binary_float CONSTANT PLS_INTEGER := 100; c_binary_double CONSTANT PLS_INTEGER := 101; -- string type identfiers -c_char CONSTANT PLS_INTEGER := 96; -- NCHAR -c_varchar2 CONSTANT PLS_INTEGER := 1; -- NVARCHAR2 +c_char CONSTANT PLS_INTEGER := 96; -- NCHAR +c_varchar2 CONSTANT PLS_INTEGER := 1; -- NVARCHAR2 c_long CONSTANT PLS_INTEGER := 8; c_clob CONSTANT PLS_INTEGER := 112; -- NCLOB c_xmltype CONSTANT PLS_INTEGER := 109; -- ANYDATA, ANYDATASET, ANYTYPE, Object type, VARRAY, Nested table -c_rowid CONSTANT PLS_INTEGER := 11; +c_rowid CONSTANT PLS_INTEGER := 69; c_urowid CONSTANT PLS_INTEGER := 208; -- binary type identfiers c_raw CONSTANT PLS_INTEGER := 23; @@ -35,8 +35,8 @@ c_bfile CONSTANT PLS_INTEGER := 114; -- date type identfiers c_date CONSTANT PLS_INTEGER := 12; c_timestamp CONSTANT PLS_INTEGER := 180; -c_timestamp_with_time_zone CONSTANT PLS_INTEGER := 181; -c_timestamp_with_local_tz CONSTANT PLS_INTEGER := 231; +c_timestamp_tz CONSTANT PLS_INTEGER := 181; +c_timestamp_ltz CONSTANT PLS_INTEGER := 231; -- interval type identfiers c_interval_year_to_month CONSTANT PLS_INTEGER := 182; c_interval_day_to_second CONSTANT PLS_INTEGER := 183; @@ -204,8 +204,10 @@ PROCEDURE util_clob_query_to_csv ( p_header_prefix IN VARCHAR2 DEFAULT NULL); PROCEDURE util_clob_table_to_insert ( - p_table_name IN VARCHAR2, - p_max_rows IN NUMBER DEFAULT 1000); + p_table_name IN VARCHAR2, + p_data_scn IN NUMBER, + p_max_rows IN NUMBER DEFAULT 1000, + p_insert_all_size IN NUMBER DEFAULT 10); PROCEDURE util_clob_create_runtime_log (p_export_files IN OUT NOCOPY tab_export_files); @@ -808,7 +810,7 @@ IS v_cursor PLS_INTEGER; v_ignore_me PLS_INTEGER; v_data_count PLS_INTEGER := 0; - v_col_cnt PLS_INTEGER; + v_col_count PLS_INTEGER; v_desc_tab dbms_sql.desc_tab3; v_buffer_varchar2 VARCHAR2(32767 CHAR); v_buffer_clob CLOB; @@ -847,8 +849,8 @@ BEGIN dbms_sql.native); -- https://support.esri.com/en/technical-article/000010110 -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html - dbms_sql.describe_columns3(v_cursor, v_col_cnt, v_desc_tab); - FOR i IN 1..v_col_cnt LOOP + dbms_sql.describe_columns3(v_cursor, v_col_count, v_desc_tab); + FOR i IN 1..v_col_count LOOP IF v_desc_tab(i).col_type = c_clob THEN dbms_sql.define_column(v_cursor, i, v_buffer_clob); ELSIF v_desc_tab(i).col_type = c_xmltype THEN @@ -865,7 +867,7 @@ BEGIN -- create header util_clob_append(p_header_prefix); - FOR i IN 1..v_col_cnt LOOP + FOR i IN 1..v_col_count LOOP IF i > 1 THEN util_clob_append(p_delimiter); END IF; @@ -878,7 +880,7 @@ BEGIN -- create data LOOP EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; - FOR i IN 1..v_col_cnt LOOP + FOR i IN 1..v_col_count LOOP IF i > 1 THEN util_clob_append(p_delimiter); END IF; @@ -894,14 +896,16 @@ BEGIN END IF; ELSIF v_desc_tab(i).col_type = c_xmltype THEN dbms_sql.column_value(v_cursor, i, v_buffer_xmltype); - v_buffer_clob := v_buffer_xmltype.getclobval(); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - escape_varchar2_buffer_for_csv; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); + IF v_buffer_xmltype IS NOT NULL THEN + v_buffer_clob := v_buffer_xmltype.getclobval(); + IF length(v_buffer_clob) <= c_vc2_max_size THEN + v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); + escape_varchar2_buffer_for_csv; + util_clob_append(v_buffer_varchar2); + ELSE + v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; + util_clob_append(v_buffer_varchar2); + END IF; END IF; ELSIF v_desc_tab(i).col_type = c_long THEN dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); @@ -926,42 +930,182 @@ BEGIN END IF; END util_clob_query_to_csv; +-------------------------------------------------------------------------------------------------------------------------------- + PROCEDURE util_clob_table_to_insert ( - p_table_name IN VARCHAR2, - p_max_rows IN NUMBER DEFAULT 1000) + p_table_name IN VARCHAR2, + p_data_scn IN NUMBER, + p_max_rows IN NUMBER DEFAULT 1000, + p_insert_all_size IN NUMBER DEFAULT 10) IS + v_query VARCHAR2(32767); v_cursor PLS_INTEGER; v_ignore_me PLS_INTEGER; v_data_count PLS_INTEGER := 0; - v_col_cnt PLS_INTEGER; + v_col_count PLS_INTEGER; v_desc_tab dbms_sql.desc_tab3; + v_table_insert_prefix VARCHAR2(4000); + v_nls_numeric_characters VARCHAR2(30); + v_nls_date_format VARCHAR2(30); + v_nls_timestamp_format VARCHAR2(30); + v_nls_timestamp_tz_format VARCHAR2(30); + c_sqlplus_max_line_length CONSTANT PLS_INTEGER := 2400; + v_line_cache VARCHAR2(2498 CHAR); + v_line_size PLS_INTEGER := 0; v_buffer_varchar2 VARCHAR2(32767 CHAR); v_buffer_clob CLOB; v_buffer_xmltype XMLTYPE; - v_buffer_long LONG; +-- v_buffer_long LONG; v_buffer_long_length PLS_INTEGER; --------------------------------------------------------------------------------------------------------------------------------- + ---------------------------------------- - PROCEDURE prepare_varchar2_buffer_for_scripting IS - c_single_quote constant varchar2(1) := q'[']'; - c_double_quote constant varchar2(2) := q'['']'; + PROCEDURE set_session_nls_params IS BEGIN - IF v_buffer_varchar2 IS NOT NULL THEN - -- if we have the single quote character in the string then we - -- have to double them - v_buffer_varchar2 := c_single_quote || - case when instr(v_buffer_varchar2, c_single_quote) > 0 - then replace(v_buffer_varchar2, c_single_quote, c_double_quote) - else v_buffer_varchar2 - end || c_single_quote; - END IF; + -- Save current values. + for i in (SELECT parameter, value FROM nls_session_parameters) loop + case i.parameter + when 'NLS_NUMERIC_CHARACTERS' then v_nls_numeric_characters := i.value; + when 'NLS_DATE_FORMAT' then v_nls_date_format := i.value; + when 'NLS_TIMESTAMP_FORMAT' then v_nls_timestamp_format := i.value; + when 'NLS_TIMESTAMP_TZ_FORMAT' then v_nls_timestamp_tz_format := i.value; + else + null; + end case; + end loop; + -- Set new values. + dbms_session.set_nls('nls_numeric_characters' , '''.,'''); + dbms_session.set_nls('nls_date_format' , '''yyyy-mm-dd hh24:mi:ss'''); + dbms_session.set_nls('nls_timestamp_format' , '''yyyy-mm-dd hh24:mi:ssxff'''); + dbms_session.set_nls('nls_timestamp_tz_format', '''yyyy-mm-dd hh24:mi:ssxff tzr'''); + END set_session_nls_params; + + ---------------------------------------- + + PROCEDURE recover_session_nls_params IS + BEGIN + dbms_session.set_nls('nls_numeric_characters' , '''' || v_nls_numeric_characters || ''''); + dbms_session.set_nls('nls_date_format' , '''' || v_nls_date_format || ''''); + dbms_session.set_nls('nls_timestamp_format' , '''' || v_nls_timestamp_format || ''''); + dbms_session.set_nls('nls_timestamp_tz_format', '''' || v_nls_timestamp_tz_format || ''''); + END recover_session_nls_params; + + ---------------------------------------- + + FUNCTION quote_string (p_string VARCHAR2) RETURN VARCHAR2 IS + v_string varchar2(5000 char); + BEGIN + case + when instr(p_string, '''') = 0 then v_string := '''' || p_string || ''''; + when instr(p_string, '^''') = 0 then v_string := 'q''^' || p_string || '^'''; + when instr(p_string, '`''') = 0 then v_string := 'q''`' || p_string || '`'''; + when instr(p_string, '#''') = 0 then v_string := 'q''#' || p_string || '#'''; + when instr(p_string, '|''') = 0 then v_string := 'q''|' || p_string || '|'''; + when instr(p_string, '!''') = 0 then v_string := 'q''!' || p_string || '!'''; + when instr(p_string, '}''') = 0 then v_string := 'q''{' || p_string || '}'''; + when instr(p_string, ']''') = 0 then v_string := 'q''[' || p_string || ']'''; + when instr(p_string, '>''') = 0 then v_string := 'q''<' || p_string || '>'''; + when instr(p_string, ')''') = 0 then v_string := 'q''(' || p_string || ')'''; + else + v_string := '''' || replace(p_string, '''', '''''') || ''''; + end case; + + -- SQL*Plus specific: + -- SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer + -- (Doc ID 2377701.1, https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1) + if regexp_instr(v_string,';$',1,1,0,'m') = 0 then + return v_string; + else + return ('regexp_replace(' || regexp_replace(v_string, ';$',';!',1,0,'m') || ','';!$'','';'',1,0,''m'')'); + end if; + + END quote_string; + + ---------------------------------------- + + PROCEDURE line_append (p_content IN VARCHAR2) IS + BEGIN + v_line_cache := v_line_cache || p_content; EXCEPTION WHEN value_error THEN - v_buffer_varchar2 := 'Value skipped - escaped text larger then ' || c_vc2_max_size || ' characters'; - END prepare_varchar2_buffer_for_scripting; + util_clob_append(v_line_cache || c_crlf ); + v_line_cache := p_content; + END line_append; - FUNCTION get_order_by_list RETURN VARCHAR2 IS + ---------------------------------------- + + PROCEDURE line_flush_cache IS + BEGIN + util_clob_append(v_line_cache || c_crlf); + v_line_cache := null; + END line_flush_cache; + + ---------------------------------------- + + PROCEDURE process_varchar2_buffer(p_type varchar2) IS + v_length PLS_INTEGER; + v_offset PLS_INTEGER; + BEGIN + v_length := nvl(length(v_buffer_varchar2), 0); + IF v_length = 0 THEN + line_append('NULL'); + ELSE + CASE p_type + WHEN 'NUMBER' THEN + line_append(v_buffer_varchar2); + WHEN 'STRING' THEN + if v_length <= c_sqlplus_max_line_length then + line_append(quote_string(v_buffer_varchar2)); + else + v_offset := 1; + while v_offset <= v_length loop + line_append(case when v_offset != 1 then '|| ' end || quote_string(substr(v_buffer_varchar2, v_offset, c_sqlplus_max_line_length))); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + end if; + WHEN 'RAW' THEN + if v_length <= c_sqlplus_max_line_length then + line_append('utl_raw.cast_to_raw(' || quote_string(v_buffer_varchar2) || ')'); + else + v_offset := 1; + line_append ('utl_raw.cast_to_raw('); + while v_offset <= v_length loop + line_append( case when v_offset != 1 then '|| ' end || quote_string(substr(v_buffer_varchar2, v_offset, c_sqlplus_max_line_length)) ); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + line_append (')'); + end if; + END CASE; + v_buffer_varchar2 := null; + END IF; + END process_varchar2_buffer; + + ---------------------------------------- + + PROCEDURE process_clob_buffer IS + v_length pls_integer; + v_offset pls_integer; + BEGIN + v_length := nvl(length(v_buffer_clob), 0); + if v_length = 0 then + line_append('NULL'); + else + if v_length <= c_sqlplus_max_line_length then + line_append(quote_string(substr(v_buffer_clob, 1, c_sqlplus_max_line_length))); + else + v_offset := 1; + while v_offset <= v_length loop + line_append(case when v_offset != 1 then '|| ' end || 'to_clob(' || quote_string(substr(v_buffer_clob, v_offset, c_sqlplus_max_line_length)) || ')' ); + v_offset := v_offset + c_sqlplus_max_line_length; + end loop; + end if; + v_buffer_clob := null; + end if; + END process_clob_buffer; + + ---------------------------------------- + + FUNCTION get_order_by_clause RETURN VARCHAR2 IS v_return varchar2(4000); begin -- try to use pk column list ... @@ -1007,126 +1151,155 @@ IS end loop; end if; - return v_return; - end; + return case when v_return is not null then ' order by ' || v_return else null end; + end get_order_by_clause; + + ---------------------------------------- + + PROCEDURE parse_query_and_describe_columns IS + BEGIN + FOR i IN ( + select 'select ' || listagg(column_name, ', ') within group (order by column_id) || ' from ' || table_name as query + from user_tab_cols + where table_name = p_table_name + and user_generated = 'YES' + and virtual_column = 'NO' + group by table_name + ) LOOP + v_query := i.query; + END LOOP; + IF v_query IS NOT NULL THEN + v_cursor := dbms_sql.open_cursor; + dbms_sql.parse( + v_cursor, + v_query || ' as of scn ' || p_data_scn || get_order_by_clause, + dbms_sql.native); + -- https://support.esri.com/en/technical-article/000010110 + -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html + dbms_sql.describe_columns3(v_cursor, v_col_count, v_desc_tab); + FOR i IN 1..v_col_count LOOP + IF v_desc_tab(i).col_type = c_clob THEN + dbms_sql.define_column(v_cursor, i, v_buffer_clob); + ELSIF v_desc_tab(i).col_type = c_long THEN + dbms_sql.define_column_long(v_cursor, i); + ELSE + dbms_sql.define_column(v_cursor, i, v_buffer_varchar2, c_vc2_max_size); + END IF; + v_table_insert_prefix := v_table_insert_prefix || v_desc_tab(i).col_name || ','; + END LOOP; + v_table_insert_prefix := + case when p_insert_all_size > 0 + then 'into ' + else 'insert into ' + end || p_table_name || '(' || rtrim(v_table_insert_prefix, ',' ) || ') values ('; + v_ignore_me := dbms_sql.execute(v_cursor); + END IF; + END parse_query_and_describe_columns; + + ---------------------------------------- + + -- SQL*Plus specific: + -- SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer + -- (Doc ID 2377701.1, https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1) + + PROCEDURE create_header IS + BEGIN + util_clob_append('-- Script generated by PLEX version ' || c_plex_version || ' - more infos here: ' || c_plex_url || c_crlf); + util_clob_append('-- Performance Hacks by Connor McDonald: https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/' || c_crlf); + util_clob_append('-- For strange line end replacements a big thank to SQL*Plus: https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1 (SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer)' || c_crlf); + util_clob_append('prompt Insert into ' || p_table_name || c_crlf); + util_clob_append('timing start inserts' || c_crlf); + util_clob_append('set define off feedback off sqlblanklines on' || c_crlf); + util_clob_append('alter session set cursor_sharing = force;' || c_crlf); + util_clob_append(q'^alter session set nls_numeric_characters = '.,';^' || c_crlf); + util_clob_append(q'^alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';^' || c_crlf); + util_clob_append(q'^alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ssxff';^' || c_crlf); + util_clob_append(q'^alter session set nls_timestamp_tz_format = 'yyyy-mm-dd hh24:mi:ssxff tzr';^' || c_crlf); + END create_header; + + ---------------------------------------- + + PROCEDURE create_data IS + BEGIN + LOOP + EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; + v_data_count := v_data_count + 1; + if v_data_count = 1 then + create_header; + end if; + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) = 1 then + util_clob_append('insert all' || c_crlf); + end if; + line_append(v_table_insert_prefix); + --> process row + FOR i IN 1..v_col_count LOOP + IF v_desc_tab(i).col_type = c_clob THEN + dbms_sql.column_value(v_cursor, i, v_buffer_clob); + process_clob_buffer; + ELSIF v_desc_tab(i).col_type = c_long THEN + dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); + if v_buffer_long_length > c_vc2_max_size then + v_buffer_varchar2 := null; + end if; + process_varchar2_buffer('STRING'); + ELSIF v_desc_tab(i).col_type = c_xmltype THEN + dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); + v_buffer_varchar2 := regexp_replace(v_buffer_varchar2, '\s*$', null); + process_varchar2_buffer('STRING'); + ELSE + dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); + IF v_desc_tab(i).col_type IN (c_number, c_binary_float, c_binary_double) THEN + process_varchar2_buffer('NUMBER'); + ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN + process_varchar2_buffer('RAW'); + ELSE + process_varchar2_buffer('STRING'); + END IF; + END IF; + if i != v_col_count then + line_append(','); + else + line_append(')' || case when p_insert_all_size < 1 then ';' end); + line_flush_cache; + end if; + END LOOP; + --< end process row + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) = 0 then + util_clob_append('select * from dual;' || c_crlf); + end if; + + END LOOP; + dbms_sql.close_cursor(v_cursor); + END create_data; + + ---------------------------------------- + + PROCEDURE create_footer IS + BEGIN + if v_data_count = 0 then + util_clob_append('Prompt Nothing to insert - there was no data in the source table ' || p_table_name || c_crlf); + else + if p_insert_all_size > 0 and mod(v_data_count, p_insert_all_size) != 0 then + util_clob_append('select * from dual;' || c_crlf); + end if; + util_clob_append('commit;' || c_crlf); + util_clob_append('alter session set cursor_sharing = exact;' || c_crlf); + util_clob_append('timing stop' || c_crlf); + end if; + util_clob_append('' || c_crlf); + END create_footer; + + ---------------------------------------- BEGIN IF p_table_name IS NOT NULL THEN - v_cursor := dbms_sql.open_cursor; - dbms_sql.parse( - v_cursor, - 'select * from ' || p_table_name || ' order by ' || get_order_by_list, - dbms_sql.native); - -- https://support.esri.com/en/technical-article/000010110 - -- http://bluefrog-oracle.blogspot.com/2011/11/describing-ref-cursor-using-dbmssql-api.html - dbms_sql.describe_columns3(v_cursor, v_col_cnt, v_desc_tab); - FOR i IN 1..v_col_cnt LOOP - IF v_desc_tab(i).col_type = c_clob THEN - dbms_sql.define_column(v_cursor, i, v_buffer_clob); - ELSIF v_desc_tab(i).col_type = c_xmltype THEN - dbms_sql.define_column(v_cursor, i, v_buffer_xmltype); - ELSIF v_desc_tab(i).col_type = c_long THEN - dbms_sql.define_column_long(v_cursor, i); - ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN - NULL; --> we ignore binary data types - ELSE - dbms_sql.define_column(v_cursor, i, v_buffer_varchar2, c_vc2_max_size); - END IF; - END LOOP; - v_ignore_me := dbms_sql.execute(v_cursor); - - -- create header - util_clob_append('-- Script generated by PLEX version ' || c_plex_version || c_crlf); - util_clob_append('-- More infos here: ' || c_plex_url || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('set define off feedback off timing on' || c_crlf); - util_clob_append('prompt Insert into ' || p_table_name || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('DECLARE' || c_crlf); - util_clob_append(' TYPE row_collection IS TABLE OF ' || p_table_name || '%rowtype INDEX BY PLS_INTEGER;' || c_crlf); - util_clob_append(' t row_collection;' || c_crlf); - util_clob_append('BEGIN' || c_crlf); - - -- create data - LOOP - EXIT WHEN dbms_sql.fetch_rows(v_cursor) = 0 OR v_data_count = p_max_rows; - v_data_count := v_data_count + 1; - -- start new table row - util_clob_append(' --' || c_crlf); - - FOR i IN 1..v_col_cnt LOOP - -- start column - util_clob_append(' t(' || v_data_count || ').' || v_desc_tab(i).col_name || ' := '); - - IF v_desc_tab(i).col_type = c_clob THEN - dbms_sql.column_value(v_cursor, i, v_buffer_clob); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'CLOB value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); - END IF; - ELSIF v_desc_tab(i).col_type = c_xmltype THEN - dbms_sql.column_value(v_cursor, i, v_buffer_xmltype); - v_buffer_clob := v_buffer_xmltype.getclobval(); - IF length(v_buffer_clob) <= c_vc2_max_size THEN - v_buffer_varchar2 := substr(v_buffer_clob, 1, c_vc2_max_size); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - v_buffer_varchar2 := 'XML value skipped - larger then ' || c_vc2_max_size || ' characters'; - util_clob_append(v_buffer_varchar2); - END IF; - ELSIF v_desc_tab(i).col_type = c_long THEN - dbms_sql.column_value_long(v_cursor, i, c_vc2_max_size, 0, v_buffer_varchar2, v_buffer_long_length); - IF v_buffer_long_length <= c_vc2_max_size THEN - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - ELSE - util_clob_append('LONG value skipped - larger then ' || c_vc2_max_size || ' characters'); - END IF; - ELSIF v_desc_tab(i).col_type IN (c_raw, c_long_raw, c_blob, c_bfile) THEN - util_clob_append('Binary data type skipped - currently not supported'); - ELSE - dbms_sql.column_value(v_cursor, i, v_buffer_varchar2); - prepare_varchar2_buffer_for_scripting; - util_clob_append(v_buffer_varchar2); - END IF; - -- end column - util_clob_append(';' || c_crlf); - END LOOP; - END LOOP; - dbms_sql.close_cursor(v_cursor); - - -- create forall insert - if v_data_count = 0 then - util_clob_append(' NULL; -- No data found in table :-(' || c_crlf); - util_clob_append('END;' || c_crlf); - util_clob_append('/' || c_crlf); - else - util_clob_append(' --' || c_crlf); - util_clob_append(' FORALL i IN 1..t.count' || c_crlf); - util_clob_append(' INSERT INTO "' || p_table_name || '" (' || c_crlf); - FOR i IN 1..v_col_cnt LOOP - util_clob_append(' "' || v_desc_tab(i).col_name || '"' - || case when i != v_col_cnt then ',' end - || c_crlf); - end loop; - util_clob_append(' ) VALUES (' || c_crlf); - FOR i IN 1..v_col_cnt LOOP - util_clob_append(' t(i)."' || v_desc_tab(i).col_name || '"' - || case when i != v_col_cnt then ',' end - || c_crlf); - end loop; - util_clob_append(' );' || c_crlf); - util_clob_append('END;' || c_crlf); - util_clob_append('/' || c_crlf); - util_clob_append('' || c_crlf); - util_clob_append('COMMIT;' || c_crlf); - util_clob_append('' || c_crlf); - end if; + --dbms_lob.createtemporary(v_buffer_clob, true); + set_session_nls_params; + parse_query_and_describe_columns; + create_data; + create_footer; + recover_session_nls_params; + --dbms_lob.freetemporary(v_buffer_clob); END IF; END util_clob_table_to_insert; @@ -1749,7 +1922,8 @@ SELECT DISTINCT '{{BASE_PATH_APP_BACKEND}}/grants/' || p.privilege || '_on_' || p.table_name || '.sql' AS file_path FROM user_tab_privs p JOIN user_objects o ON p.table_name = o.object_name -WHERE (#NAME_LIKE_EXPRESSIONS#) +WHERE table_name not like 'SYS_PLSQL%' + AND (#NAME_LIKE_EXPRESSIONS#) AND (#NAME_NOT_LIKE_EXPRESSIONS#) ORDER BY privilege, @@ -1990,8 +2164,8 @@ prompt --install_web_services_generated_by_ords PROCEDURE process_data IS TYPE obj_rec_typ IS RECORD ( - table_name VARCHAR2(256), - pk_columns VARCHAR2(4000)); + table_name VARCHAR2(256), + pk_columns VARCHAR2(4000)); v_rec obj_rec_typ; BEGIN util_log_start(p_base_path_data || '/open_tables_cursor'); @@ -2030,7 +2204,7 @@ SELECT table_name, EXIT WHEN v_cur%notfound; -- csv file - IF lower(p_data_format) LIKE '%csv%' THEN + IF upper(p_data_format) LIKE '%CSV%' THEN BEGIN v_file_path := p_base_path_data || '/' || v_rec.table_name || '.csv'; util_log_start(v_file_path); @@ -2053,11 +2227,15 @@ SELECT table_name, END IF; -- insert script - IF lower(p_data_format) LIKE '%insert%' THEN + IF upper(p_data_format) LIKE '%INSERT%' THEN BEGIN v_file_path := p_base_path_data || '/' || v_rec.table_name || '.sql'; util_log_start(v_file_path); - util_clob_table_to_insert(p_table_name => v_rec.table_name); + util_clob_table_to_insert( + p_table_name => v_rec.table_name, + p_data_scn => v_data_scn, + p_max_rows => p_data_max_rows, + p_insert_all_size => to_number(nvl(regexp_substr(p_data_format,'insert:(\d+)',1,1,'i',1), '10'))); util_clob_add_to_export_files( p_export_files => v_export_files, p_name => v_file_path); diff --git a/src/PLEX.pks b/src/PLEX.pks index 003cd36..f4033f9 100644 --- a/src/PLEX.pks +++ b/src/PLEX.pks @@ -1,6 +1,6 @@ CREATE OR REPLACE PACKAGE PLEX AUTHID current_user IS c_plex_name CONSTANT VARCHAR2(30 CHAR) := 'PLEX - PL/SQL Export Utilities'; -c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.2.0'; +c_plex_version CONSTANT VARCHAR2(10 CHAR) := '2.3.0'; c_plex_url CONSTANT VARCHAR2(40 CHAR) := 'https://github.com/ogobrecht/plex'; c_plex_license CONSTANT VARCHAR2(10 CHAR) := 'MIT'; c_plex_license_url CONSTANT VARCHAR2(60 CHAR) := 'https://github.com/ogobrecht/plex/blob/master/LICENSE.txt'; @@ -38,6 +38,8 @@ INSTALLATION CHANGELOG +- 2.3.0 (2020-11-29) + - Function BackApp: Rework table data export format INSERT - thanks to Connor McDonald for his blog post [Generating INSERT scripts that run fast!](https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/) - 2.2.0 (2020-10-25) - Function BackApp: - Fixed: #4 - plex.backapp throws "ORA-00904: DBMS_JAVA.LONGNAME: invalid identifier" in Oracle instances without a JVM @@ -235,7 +237,7 @@ EXAMPLE ZIP FILE SQL*Plus -- Example Windows: certutil -decode app_100.zip.base64 app_100.zip -- Example Mac: base64 -D -i app_100.zip.base64 -o app_100.zip -- Example Linux: base64 -d app_100.zip.base64 > app_100.zip -set verify off feedback off heading off termout off +set verify off feedback off heading off set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 whenever sqlerror exit sql.sqlcode rollback variable contents clob @@ -248,9 +250,11 @@ BEGIN p_include_templates => true))); END; {{/}} +set termout off spool "app_100.zip.base64" print contents spool off +set termout on ``` **/ diff --git a/src/plex_test_ccflags.sql b/test/test_ccflags.sql similarity index 100% rename from src/plex_test_ccflags.sql rename to test/test_ccflags.sql diff --git a/src/plex_test_export.sql b/test/test_export.sql similarity index 95% rename from src/plex_test_export.sql rename to test/test_export.sql index 84991b7..278572d 100644 --- a/src/plex_test_export.sql +++ b/test/test_export.sql @@ -21,6 +21,9 @@ BEGIN END; / +prompt Delete old zip file from previous test: +host del app_100.zip + set termout off spool "app_100.zip.base64" print zip diff --git a/test/test_types_1_table.sql b/test/test_types_1_table.sql new file mode 100644 index 0000000..f013ab9 --- /dev/null +++ b/test/test_types_1_table.sql @@ -0,0 +1,78 @@ +timing start test_export +set verify off feedback off heading off +set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 +whenever sqlerror exit sql.sqlcode rollback +whenever oserror continue +variable zip clob + +prompt +prompt PLEX Test Export Format INSERT With Multiple Data Types (create table) +prompt ====================================================================== + +prompt Drop existing test objects +begin + for i in ( + select object_type, object_name + from user_objects + where object_type = 'TABLE' and object_name = 'PLEX_TEST_MULTIPLE_DATATYPES' + or object_type = 'PACKAGE' and object_name = 'PLEX_TEST_MULTIPLE_DATATYPES_API') + loop + execute immediate 'drop ' || i.object_type || ' ' || i.object_name; + end loop; +end; +/ + +prompt Create table plex_test_multiple_datatypes +begin + for i in ( + select 'PLEX_TEST_MULTIPLE_DATATYPES' from dual + minus + select object_name from user_objects) + loop + execute immediate q'[ + create table plex_test_multiple_datatypes ( + ptmd_id integer generated by default on null as identity , + ptmd_varchar varchar2(15 char) , + ptmd_char char(1 char) not null , + ptmd_integer integer , + ptmd_number number , + ptmd_number_x_5 number(*,5) , + ptmd_number_20_5 number(20,5) , + ptmd_virtual number as (ptmd_number / ptmd_number_x_5) virtual , + ptmd_float float , + ptmd_float_size_30 float(30) , + ptmd_xmltype xmltype , + ptmd_clob clob , + ptmd_blob blob , + ptmd_date date , + ptmd_timestamp timestamp , + ptmd_timestamp_tz timestamp with time zone , + ptmd_timestamp_ltz timestamp with local time zone , + ptmd_interval_day_to_second interval day (2) to second (6) , + ptmd_interval_year_to_month interval year (2) to month , + -- + primary key (ptmd_id) + ) + ]'; + end loop; +end; +/ + +prompt Create table API for plex_test_multiple_datatypes +begin + for i in ( + select 'PLEX_TEST_MULTIPLE_DATATYPES_API' from dual + minus + select object_name from user_objects) + loop + om_tapigen.compile_api( + p_table_name => 'PLEX_TEST_MULTIPLE_DATATYPES', + p_enable_custom_defaults => true); + end loop; +end; +/ + +timing stop +prompt ======================================================= +prompt Done :-) +prompt diff --git a/test/test_types_2_data.sql b/test/test_types_2_data.sql new file mode 100644 index 0000000..92d136a --- /dev/null +++ b/test/test_types_2_data.sql @@ -0,0 +1,33 @@ +timing start test_export +set verify off feedback off heading off +set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 +whenever sqlerror exit sql.sqlcode rollback +whenever oserror continue +variable zip clob + +prompt +prompt PLEX Test Export Format INSERT With Multiple Data Types (create data) +prompt ===================================================================== + +prompt Truncate table plex_test_multiple_datatypes +truncate table PLEX_TEST_MULTIPLE_DATATYPES; + +prompt Insert &1 rows into plex_test_multiple_datatypes +declare + l_rows_tab plex_test_multiple_datatypes_api.t_rows_tab; + l_number_records pls_integer := &1; +begin + l_rows_tab := plex_test_multiple_datatypes_api.t_rows_tab(); + l_rows_tab.extend(l_number_records); + for i in 1 .. l_number_records loop + l_rows_tab(i) := plex_test_multiple_datatypes_api.get_a_row; + end loop; + plex_test_multiple_datatypes_api.create_rows(l_rows_tab); + commit; +end; +/ + +timing stop +prompt ======================================================= +prompt Done :-) +prompt diff --git a/test/test_types_3_export.sql b/test/test_types_3_export.sql new file mode 100644 index 0000000..276a3c4 --- /dev/null +++ b/test/test_types_3_export.sql @@ -0,0 +1,49 @@ +timing start test_export +set verify off feedback off heading off serveroutput on +set trimout on trimspool on pagesize 0 linesize 5000 long 100000000 longchunksize 32767 +whenever sqlerror exit sql.sqlcode rollback +whenever oserror continue +variable zip clob + +prompt +prompt PLEX Test Export Format INSERT With Multiple Data Types (export data) +prompt ===================================================================== + +prompt Run plex.backapp (this can take some time...) +BEGIN + :zip := plex.to_base64(plex.to_zip(plex.backapp( + p_app_id => null, --100, + p_include_object_ddl => false, + p_include_ords_modules => false, + p_include_data => true, + p_data_format => 'csv,insert:20', + p_data_table_name_like => 'PLEX_TEST_MULTIPLE_DATATYPES', + p_include_templates => true))); +END; +/ + +prompt Delete old zip file from previous test: +host del app_100.zip + +set termout off +spool "app_100.zip.base64" +print zip +spool off +set termout on + +prompt Exract zip on host operating system: +prompt Try Windows: certutil -decode app_100.zip.base64 app_100.zip +host certutil -decode app_100.zip.base64 app_100.zip +prompt Try Mac: base64 -D -i app_100.zip.base64 -o app_100.zip +host base64 -D -i app_100.zip.base64 -o app_100.zip +prompt Try Linux: base64 -d app_100.zip.base64 app_100.zip +host base64 -d app_100.zip.base64 app_100.zip + +prompt Delete base64 encoded file: +prompt Windows, Mac, Linux: del app_100.zip.base64 +host del app_100.zip.base64 + +timing stop +prompt ======================================================= +prompt Done :-) +prompt \ No newline at end of file diff --git a/test/test_types_4_import.sql b/test/test_types_4_import.sql new file mode 100644 index 0000000..4f1dfa9 --- /dev/null +++ b/test/test_types_4_import.sql @@ -0,0 +1,128 @@ +prompt Truncate table plex_test_multiple_datatypes +TRUNCATE TABLE plex_test_multiple_datatypes; + +-- Script generated by PLEX version 2.3.0 - more infos here: https://github.com/ogobrecht/plex +-- Performance Hacks by Connor McDonald: https://connor-mcdonald.com/2019/05/17/hacking-together-faster-inserts/ +-- For strange line end replacements a big thank to SQL*Plus: https://support.oracle.com/epmos/faces/DocumentDisplay?id=2377701.1 (SQL Failed With ORA-1756 In Sqlplus But Works In SQL Developer) +prompt Insert into PLEX_TEST_MULTIPLE_DATATYPES +timing start inserts +set define off feedback off sqlblanklines on +alter session set cursor_sharing = force; +alter session set nls_numeric_characters = '.,'; +alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; +alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ssxff'; +alter session set nls_timestamp_tz_format = 'yyyy-mm-dd hh24:mi:ssxff tzr'; +insert all +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (1,'ZwHRUZDanXwYI','O',209066846840,325980663786,7536547.98174,301550822104853.81029,601951781402840135341350.325934786763,993636675600000000000000,'Dummy clob for API method get_a_row: VgPWDwpyRQjyAsBwKHrXpxGAdRtGcfq',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: LmUPElnmDuiBHiwlemTMlVByyIcgbfGcCDNFepiNB'),'2000-03-13 00:00:00','2020-11-29 11:54:21.408500','2020-11-29 11:54:21.408507 +00:00','2020-11-29 12:54:21.408509','+48 22:36:04.000000','+72-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (2,'MS','A',835250797830,120917231392,1788554.49136,906908973647463.63337,939233908431465293427184.790900028174,916853707500000000000000,'Dummy clob for API method get_a_row: TbVaBBZxOrzriryYwbWOLMERAdSBhCEerNQIpgyTpFiOybsbKuFgUdKTEobiEdbGFQAXYwslhFdJnwsLXYhCgOxwCs',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: tKaauVjmWXkMrzjqHaCebMIkksZCHIrRiWSgCoPgLhFDWHXJGRcXOAbeCzcCdaDFuCtunyWTHIhxUguqKBaWJSvl'),'1985-07-10 00:00:00','2020-11-29 11:54:21.409113','2020-11-29 11:54:21.409116 +00:00','2020-11-29 12:54:21.409118','+90 15:37:16.000000','+35-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (3,'ky','J',115440106973,882703374344,5575541.63695,263826782025048.35491,503855569222607526060082.179732084972,181984650300000000000000,'Dummy clob for API method get_a_row: NzeciPoowjuJiktahETxcYKRzZOwiqvlxlwpgQJfKUUFmufOswGiSjPMYsZQFkZuVryOACFrYnCOTpfsVVfBZLyWeWGmBiZfL',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: UmxlFQkIxlZvFtNFRfvXQAOFBBleXjHWAQblIFdcmzGDPscYRwGpgZZVo'),'2034-05-14 00:00:00','2020-11-29 11:54:21.409638','2020-11-29 11:54:21.409641 +00:00','2020-11-29 12:54:21.409643','+30 13:00:49.000000','+60-11') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (4,'Ah','z',841919298438,661178404491,905012.67359,593793370137460.23284,38501197611055695498562.509931404282,514578310100000000000000,'Dummy clob for API method get_a_row: prkoKlTWboZRDQJDjzbKjHDObTtpRhXjXZgFPUdrlyIgqsjLZ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: HBcjcQLdebSqFyNGXSkmvUxjrZAnaAWBrt'),'1964-01-23 00:00:00','2020-11-29 11:54:21.410064','2020-11-29 11:54:21.410067 +00:00','2020-11-29 12:54:21.410068','+00 23:39:04.000000','+21-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (5,'KipzEfzafe','X',752919350811,994184281675,5193387.9926,562222667093753.79627,433320158229611236914164.354130693179,65761484890000000000000,'Dummy clob for API method get_a_row: sfosWuXxzyHRxJHkXzrWhhHxMstgbNIIOVvnwLUPUsRTKXkwCiwqWRnEYiYyIfGNUDFtUczrsJprFruOaqWyfvN',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: EUlEqbcovWMeAjnurmhbJhTyYvwnbTzYXrxKEbfngCVGbhJSdEaodgkcQirRvbNTOKpELTiXoDilPcRBA'),'1985-10-31 00:00:00','2020-11-29 11:54:21.410475','2020-11-29 11:54:21.410478 +00:00','2020-11-29 12:54:21.410480','+54 02:00:41.000000','+02-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (6,'pczDsHuM','K',760742902204,27340902743,8354885.56114,807683260233160.10549,346556808579295351435589.498733171902,153689337900000000000000,'Dummy clob for API method get_a_row: HPhLbODNhHTVByKdIyZiWVExtMRIQyeTEzNpHbfBOnefBJmudeM',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: UzNAbyUrMhhlHgLIapeXlDOYersXqeokxrUgyhhUJMmWTpoczQSOhbEyqFYSdJbKZBSFOsdkC'),'1965-07-24 00:00:00','2020-11-29 11:54:21.410907','2020-11-29 11:54:21.410910 +00:00','2020-11-29 12:54:21.410912','+87 02:51:04.000000','+00-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (7,'KmY','t',671405567871,760793239434,9461948.4389,857111810017908.12259,973929137944382994275430.643217955709,530662981200000000000000,'Dummy clob for API method get_a_row: XrebMvtxtEOCkPUazUfdvqMrFbAoHLHpvMjPwKGhrfsEQrJkRlVvNxSdTfQTHAmoRx',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hZaHrzYiLiVbWNWjUIZSOsAjDLsWIdKlqSRbQKDHvStzgCAoPaFDJx'),'1904-10-28 00:00:00','2020-11-29 11:54:21.411322','2020-11-29 11:54:21.411325 +00:00','2020-11-29 12:54:21.411327','+70 16:22:35.000000','+00-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (8,'TCAnCnXaqQ','S',351739769917,899856689035,8889411.92779,3357860809542.13309,447610394976970311410438.608952714642,370532806700000000000000,'Dummy clob for API method get_a_row: apzOAncocfPbpkXdGKnuXnZUwirilyUwOkoyqchZUcPXawwbjfKwuCRWYrwlmwkrQEagNFCanDRykVvgOCfgBlSmclkdZSQl',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: pDnCyCXicufYMCmtbRniCdspKJmXSMTsVmmUxDweZLZyUYWNCQIVteWzNaZROqayhRsKFiYBdM'),'2026-04-03 00:00:00','2020-11-29 11:54:21.411746','2020-11-29 11:54:21.411770 +00:00','2020-11-29 12:54:21.411772','+45 01:17:03.000000','+24-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (9,'sMqqsiNMmMuXcG','R',169681776715,501167813718,1366532.77393,903608480007043.78948,289537396663661611293936.141606424591,607053575800000000000000,'Dummy clob for API method get_a_row: IumawLKObUXWGpeKObNmFIMohBEWOMePsSzJHiAizNbJfiATezZBgPRpwrxKXodTnWfOX',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: tNoovlrNHLAdXubwEoJxUfWeCmkHXDNuhSoVmXcZBxVVEzliIwUAtuJvAYwToEHpeozKREVG'),'2044-09-09 00:00:00','2020-11-29 11:54:21.412196','2020-11-29 11:54:21.412199 +00:00','2020-11-29 12:54:21.412201','+58 08:29:36.000000','+15-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (10,'jEHR','W',809089940452,643200242075,8302006.07003,702521552554933.5017,776286297632493657335913.65175274915,514951866500000000000000,'Dummy clob for API method get_a_row: VJRXKuTkbnUunpNMywWVpiGOLdGdVkcBARQHLnZAAXbYsYUOMPNRzgzgmXBgfwmcElBydnNyUyuhGbcX',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: TuURbimpSoqkMdFJdXVLiNgOIyGIcDfrwBwXVOuDppNzqDdcSDSJqEHctbZDmShOpnHhrzMTNjLYRKqbCZRSInTpcWb'),'1928-06-29 00:00:00','2020-11-29 11:54:21.412625','2020-11-29 11:54:21.412628 +00:00','2020-11-29 12:54:21.412629','+64 12:20:35.000000','+54-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (11,'iDqvfnehHP','D',913565414064,9693727896,8345367.18474,426971117781507.06127,896258367289772658336955.705863950301,110475275500000000000000,'Dummy clob for API method get_a_row: xmFWIeUtVsXpbPjKkEqvSqXpvYhrMCAvcLPPyVfciboAnVhWhFtUezLsLmNU',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: VpxEnEZlPmTgfwFLELcdbLqCLonydjfqVZmPtaZkTpNkqZqEWVoOYLjhelCRoFclMFvYXewYAq'),'1954-02-02 00:00:00','2020-11-29 11:54:21.413025','2020-11-29 11:54:21.413027 +00:00','2020-11-29 12:54:21.413029','+33 16:37:08.000000','+66-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (12,'MCvOYzLog','g',32460321811,417510652713,6168355.36762,892887350349769.92927,189926424104392650740244.53782778208,169625461600000000000000,'Dummy clob for API method get_a_row: GDomORkFgSNZKyMZWKtFfXYpYwwcXDiYI',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: nlwZYQZkFBKAdKySIfpYrfAkPmUTdoBALGYlpvuyHqXCzXOEIMbaDITCXQtCFakQHjlSGtQPWNarC'),'1959-02-25 00:00:00','2020-11-29 11:54:21.413403','2020-11-29 11:54:21.413406 +00:00','2020-11-29 12:54:21.413408','+77 11:57:55.000000','+87-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (13,'VDjWSouWfPOaJV','R',609408992159,370468331399,5959306.61321,491778384711485.22993,41759496464551720199963.43640321728,336368005100000000000000,'Dummy clob for API method get_a_row: TPtciijqLxbwxPaTPeuKyYYYSFNHyJutvXZFdhKGEeUwaOosIztDxV',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: mUHjhsekHUABbwlaUIOGYnMQbEHKvflgQeImWLvOZfVXWAOMRNAbliHOYOucXPQXzJnxHgotojevnbdsRImhNsu'),'2057-02-02 00:00:00','2020-11-29 11:54:21.413819','2020-11-29 11:54:21.413823 +00:00','2020-11-29 12:54:21.413825','+86 01:17:51.000000','+51-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (14,'YpIVehDGFwf','Z',185834577916,695048978839,1371267.02012,818047794725456.34365,442312480322393538600807.35663898491,639948863500000000000000,'Dummy clob for API method get_a_row: fwtoTGFKrQHkMrIxcURQZjfEMmuIIiESGALwHkabpkTkqZznheqCJPtsjoxcoJdyQShUcjZRFlAPJfsuRlLRxx',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: qoIYwtEaGDAESJZFnQrSSulmAaIumGooFbFQWnzXImFhS'),'1917-05-05 00:00:00','2020-11-29 11:54:21.414201','2020-11-29 11:54:21.414204 +00:00','2020-11-29 12:54:21.414206','+94 15:38:32.000000','+57-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (15,'jxrPRSiAsOLeG','o',935708812290,480915739962,5656935.12682,928122176545264.55751,46762129793374101262211.199574661982,928406299600000000000000,'Dummy clob for API method get_a_row: fZnxdtSREttyLwXQZolSvgQVsNsJjdY',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: IgORHxMFSNbanQkZWlAvzkWYngGMXrrNaIPSujVsBMtixBvPztEjNvyvMUdeoDSsV'),'2062-12-13 00:00:00','2020-11-29 11:54:21.414598','2020-11-29 11:54:21.414601 +00:00','2020-11-29 12:54:21.414603','+86 15:00:07.000000','+34-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (16,'uexlRnnaKvlmpIn','t',941343738459,676771442908,7529492.04635,759627124787845.05665,695642371106682556426818.964396592308,433186293600000000000000,'Dummy clob for API method get_a_row: eakPtclzbraISMKgOPUmdglBOgyWcbtrMTCYCAaUSFFCCbTHROnKbgutGjlVEernLdgVNlBhVaogHFJfumhDIolSDnu',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: fSIeimXQMVpmocrilEZBWSZMSdGORabtDJLDMLw'),'1977-12-22 00:00:00','2020-11-29 11:54:21.415001','2020-11-29 11:54:21.415003 +00:00','2020-11-29 12:54:21.415005','+50 22:20:40.000000','+28-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (17,'usLTZGTTyvP','z',254774834862,982243327459,1857278.89602,300982546889319.3048,594227982666800577516988.897511757402,2027018068000000000000,'Dummy clob for API method get_a_row: GcXvCayAgoPaUgrgRCvSpVJEClaCBipJ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: kAtFxUGKQIjRTOWKtbrXVFIOxyEInJLYQTaeMmcTDBHoXbMeBuZEuSsizxOldRjhcJvfAye'),'2091-07-07 00:00:00','2020-11-29 11:54:21.415385','2020-11-29 11:54:21.415388 +00:00','2020-11-29 12:54:21.415390','+56 23:13:51.000000','+63-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (18,'zsdMibEHPRoPq','L',22642320384,615536957505,2193345.37356,61103330174190.87253,381188769893496230842859.147088358192,461653870500000000000000,'Dummy clob for API method get_a_row: pkdULfEnOuRfMdDyQVurhczieXsNxCliANQlhCNXJHIwzKSMlHagkNNTHWhJiqWOHhRtfRW',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: cCogmSvPeSthPzCIjxvQsjmRpaqfbpmNKONXfIimparypYXrfMKYAIrSdeMOHicph'),'1925-08-16 00:00:00','2020-11-29 11:54:21.415800','2020-11-29 11:54:21.415803 +00:00','2020-11-29 12:54:21.415805','+09 21:09:42.000000','+90-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (19,'mOiIJIUm','D',542925884011,953436543107,5818795.41703,613279266168062.69564,763646593637652529039207.85349030234,873208703000000000000000,'Dummy clob for API method get_a_row: GqNJignbuaKCEabUrbgzVSaERduTVkdZTnhUGxMKEdGdQEMvvmxiEBBYUIcDQQANNsWLYofvEndlWmzNQsCalfxnwJXXONYSV',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: opsrrAZbUboBlkBedCwyBKBuinCDOaPSaPerOqUXBahjYxoBZLMZcXWWcvvFbptvqTtA'),'2003-11-27 00:00:00','2020-11-29 11:54:21.416247','2020-11-29 11:54:21.416250 +00:00','2020-11-29 12:54:21.416252','+40 01:35:33.000000','+57-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (20,'HqvIyOdq','m',793067201726,70855705010,1973634.36364,495890194301804.17138,936543889268701678345692.549304019559,796004891100000000000000,'Dummy clob for API method get_a_row: PSBWjfDeUriDNfnQKVrfbreliVCkFwKumzOxmAwNeycThyUkODFklYcxoDGocNZHqxBAgkeoTUzIpzWxZIUqUms',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: CVmOOWVUweTNiyYiYFtbXyuOLbfxASjsSnOuGAIQyTWXyvfxNOSslnqOwRMOoFMPRiH'),'2056-08-14 00:00:00','2020-11-29 11:54:21.416659','2020-11-29 11:54:21.416662 +00:00','2020-11-29 12:54:21.416663','+98 15:58:25.000000','+46-03') +select * from dual; +insert all +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (21,'VuaMZpxpmFZHPFb','v',107436852670,410727105100,5993302.02707,311162594112623.28346,35068599411800706200298.421517166237,580638855900000000000000,'Dummy clob for API method get_a_row: kpJnLvwCfIGLYdgDTjyHfFTNHPhtnbYpsnalpIVDOnWttjWmLtJAidCrFqgyWVrYwhxNmBHhWVAYpqATJqtVE',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hyeHkLdMbLUUGfldUiPKYXUCLPhaUawYWboiZQOisrpHDaTUCYAStZdsNMiFmalxmJC'),'2022-11-15 00:00:00','2020-11-29 11:54:21.417091','2020-11-29 11:54:21.417094 +00:00','2020-11-29 12:54:21.417096','+91 00:14:15.000000','+51-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (22,'cyoXNo','t',274974060496,371247824,5062623.72999,339206078485424.08943,690637344405241707984294.559812911513,772622245500000000000000,'Dummy clob for API method get_a_row: ielbZaEZWXRhGwTvQazcbTKezodDHzIfiNAtgurXMXuiUEeOiwTeiQLhTPegZMFFlSamrKScyt',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: vYoshlxipPTNCdfZGHwcxpUULPxrgqdaGEDPFMNVpfSH'),'1957-08-08 00:00:00','2020-11-29 11:54:21.417473','2020-11-29 11:54:21.417475 +00:00','2020-11-29 12:54:21.417477','+94 00:51:57.000000','+14-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (23,'oOfGolkO','b',170071509442,922036039667,3904395.43021,444283643971608.2544,554998784739715402264912.847522903955,140796395200000000000000,'Dummy clob for API method get_a_row: taheFFAwKFBIfVmnwfBTDBbVZDNCBjZwVcBLBoyILV',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: skKAFAPVHkgfTeuhGoZtghCThKkwIBzMoLbbaTiKlPEQzWiSqOrptYRavuxNCOiwwIGuxdrsEeJgEklXYclBaRmkGZochRHiYL'),'1940-11-24 00:00:00','2020-11-29 11:54:21.417896','2020-11-29 11:54:21.417898 +00:00','2020-11-29 12:54:21.417900','+94 00:30:12.000000','+89-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (24,'V','J',69004276045,963832569483,3908074.40619,441180000851255.47522,674821751153035954442701.133853142107,278757577100000000000000,'Dummy clob for API method get_a_row: GBkiqByFBDVBrdyQROrZRwCJVcLxHeWE',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: EiGnyvPPWHcJoNtHYLdgyLbevgxgVJGIEIec'),'2075-12-23 00:00:00','2020-11-29 11:54:21.418256','2020-11-29 11:54:21.418258 +00:00','2020-11-29 12:54:21.418260','+60 15:42:58.000000','+03-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (25,'PDdBXbocigi','P',88589868949,384026072828,3807180.60036,103938296124233.30513,418040587100959686466266.017783743599,464816451000000000000000,'Dummy clob for API method get_a_row: WsaEEorAAbCcrDbTuLmEpPvACJYJHyqNpLSYMidXWNJlfiBbFRIblNlZBzOMniNpmUBElFrRZvqVxwcI',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: gktLcnqKgkzQrNJiKpQnsteNywiJNicfzGzKBgxBmDCwEaHGgmkoVnofhcVpVSqfry'),'2004-02-18 00:00:00','2020-11-29 11:54:21.418668','2020-11-29 11:54:21.418670 +00:00','2020-11-29 12:54:21.418672','+85 20:08:40.000000','+93-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (26,'jxTmTf','T',956799201708,680018050291,4156600.22778,318577248674588.04807,222544536291665346212205.499279162342,621816108000000000000000,'Dummy clob for API method get_a_row: DiCxmHYHDGAcblHcRBcndizapfQPxDlzMpXzqOzFbFgTNNFmCVU',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: lepsOSNkLKHPvYcSAGhsGJGrvEMrBljjhbsaHkkBZGUXdIlOTnfJebLgj'),'1908-06-04 00:00:00','2020-11-29 11:54:21.419066','2020-11-29 11:54:21.419068 +00:00','2020-11-29 12:54:21.419070','+70 07:04:55.000000','+37-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (27,'zqDIMUZMCPk','s',108347506673,294406273213,8469094.11356,847565176939108.51186,21504496885901984811756.92889391221,612634381300000000000000,'Dummy clob for API method get_a_row: tvhnucgMMsXOlcYmFYhrpclVXyDlPjSKrJhgYxDvDlqSrOCUIzFgyYTQulZKMzWECFuKZchIKXKgqnpfyIROIlbmuGqkwazFrk',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: QqkdTXPMpMJwtuqZUlxqxLluWChOBHmxgYTyVYeDUvXgpxPFiXqCCVXnsRsVfBKVkdvO'),'1971-12-25 00:00:00','2020-11-29 11:54:21.419481','2020-11-29 11:54:21.419484 +00:00','2020-11-29 12:54:21.419486','+40 13:48:37.000000','+41-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (28,'JBAEaXREdJk','q',233683365099,384692752295,121577.68063,504805370371317.25949,777621436429504449317274.157539061254,498787242400000000000000,'Dummy clob for API method get_a_row: TkGRAgcrfVtJliVgNiKBcwqUiejoRSMmZPrJsXmGKJZesYcTXcvEqmoBP',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: FRzodFklSeGHnYsjfVUSnFHftHEAnoEwbsLQLvusJyfPsPMbZKFcHWUzZEpRtphuWRXyUmbpTAifVTGTSKcvKZ'),'2084-07-07 00:00:00','2020-11-29 11:54:21.419896','2020-11-29 11:54:21.419898 +00:00','2020-11-29 12:54:21.419900','+01 22:01:38.000000','+10-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (29,'mgQDOMCnR','L',762082645034,152461950244,5616452.99032,795305143768889.43019,523180798152648141558606.072717915308,347211532500000000000000,'Dummy clob for API method get_a_row: RyTfTJgamwJxczLqEJVOumLAPkzDFfcYTOCnXwlbFUnVhwQBJ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: bTHqPhiTjYpJyGKMkAvxSJeIjcjbCZybXMWrFCimLMFjhQhXW'),'2014-01-05 00:00:00','2020-11-29 11:54:21.420274','2020-11-29 11:54:21.420277 +00:00','2020-11-29 12:54:21.420279','+88 15:13:46.000000','+44-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (30,'rSRGhuHlMBEItz','N',34912200999,641228180358,112608.18363,497815979690733.11973,235889727862359739000277.134492450284,632756531400000000000000,'Dummy clob for API method get_a_row: pBKQsWstmJVqjsAplFuyOZDVZSngmKUmbREifZNVowaUtEGnbXcickvOUywfgNfNb',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ZOSOKaCUSHeJJApQPPuPAvQBNLmtjPWziMTQOeruqHtEOJOMuacgJramZFHuqZUA'),'1976-10-08 00:00:00','2020-11-29 11:54:21.420661','2020-11-29 11:54:21.420663 +00:00','2020-11-29 12:54:21.420665','+95 12:26:35.000000','+63-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (31,'WnU','E',580176050290,255945463461,1596613.35592,733716904699680.12097,301188469682106163512179.018193450718,497342327700000000000000,'Dummy clob for API method get_a_row: hjcHMJLEMAifhMSWGYQAEChVMrahIhULogiwotxiumpFfnjobJZLrKttbDpUrgQ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: gRcWGQFALFGkqQJnAAtzsOFQkYQgaOka'),'1915-08-15 00:00:00','2020-11-29 11:54:21.421184','2020-11-29 11:54:21.421188 +00:00','2020-11-29 12:54:21.421190','+33 13:44:04.000000','+76-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (32,'OgvhaDhcDiUj','V',342849008827,325093294230,8045415.16161,866139165969813.27659,46456857634516601562031.772630914745,635084492000000000000000,'Dummy clob for API method get_a_row: kXemShsMwqowVwUkLTcJDNUmtffKAgFucaQkjGDPzWKMYCBoVXRNLoieDJxTOxHYRFhFDYAKpmVcPVaODwXMVnZfkNDxEKo',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: brRbbCzKKmpbKItGGVfjkgECTlCHjpbQemDqXZZNjMnfvSmrjjhpr'),'2075-07-15 00:00:00','2020-11-29 11:54:21.421613','2020-11-29 11:54:21.421616 +00:00','2020-11-29 12:54:21.421618','+37 20:33:23.000000','+67-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (33,'baoZsSiiSUpiT','g',986688902162,835019045427,8848240.12301,40917194612409.94436,401278097741023290399907.032111018194,700542578800000000000000,'Dummy clob for API method get_a_row: TnYzpYobHYBJAtDxWaySpjCexhifyVJxTdcQF',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: KwoXwzwxcPaqQuWJjRVHentyYbBeaFJNuKyuSlhfuXXzZUftOpkG'),'1917-05-04 00:00:00','2020-11-29 11:54:21.422069','2020-11-29 11:54:21.422072 +00:00','2020-11-29 12:54:21.422074','+98 06:40:27.000000','+79-00') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (34,'FFLWaYk','g',75647789814,795735736765,5819451.66179,792696005788184.21856,862673322725168283585108.791561932196,139755369600000000000000,'Dummy clob for API method get_a_row: nBKdHoaYBIXwrzlBqKhtOqyewrcdSGcnSjUArvUKrdVLWpjiVtRULnGjtnHZvDLUrrwi',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: GLinCFkfhNRluydtiWMWcamygfiUSuRvvRIwWFrUTBfhFDplihNUXVtmrRIUzCaceahQDVOCYsEheckOMwopQKhmiRQWH'),'1968-07-11 00:00:00','2020-11-29 11:54:21.422476','2020-11-29 11:54:21.422478 +00:00','2020-11-29 12:54:21.422480','+95 22:32:15.000000','+96-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (35,'EnGZSCBx','A',78049688811,266651843854,9446408.88831,184198426529251.07074,303533065788592622276958.280804982368,249580647000000000000000,'Dummy clob for API method get_a_row: VsEfDUqdnAdCpFIGYYeMZKURnJOyMaRkjussCgZCaPWPSTakIxYrxbwJCTdPvINXuWvsmiIy',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: AcrdvBwHnpJBOumNWIypnaUmRIEBjiwyBibWxFKGTZxWHKItDqbViTZSkwffjtGoYlYLzwUphvLvkdfUzgXS'),'1906-10-10 00:00:00','2020-11-29 11:54:21.422890','2020-11-29 11:54:21.422893 +00:00','2020-11-29 12:54:21.422894','+43 08:43:35.000000','+12-00') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (36,'zQvrKWiHHd','k',743578288568,761658693254,3283167.90902,367381408247321.86562,939176682114803411587910.164965537545,103203734900000000000000,'Dummy clob for API method get_a_row: vwsDAkCHPTHBYlVWhtXUCeWEybMxAgmoY',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: OALNWQHkvnFfihYFKDmSHuYEAAQovnJVCjyrmoeTHHJEmXgXAnytiwuPAbBREQGyXEWUVDYSLwXtRFcAnPiekE'),'2041-12-25 00:00:00','2020-11-29 11:54:21.423358','2020-11-29 11:54:21.423361 +00:00','2020-11-29 12:54:21.423363','+05 05:00:11.000000','+82-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (37,'RfMgZIaFpLj','n',2821465189,38865654596,4378703.92902,308197966208540.30422,764484258416713721730649.965660202804,817671849400000000000000,'Dummy clob for API method get_a_row: WzPdBepfHVTJzFydjeDAXCEazTuXujPwaLVsPeQzVjRL',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: oNUkKGSmLkWSKBvNEchgpCOkPcENVMRrSvkdBpguzStVWocjsgBYUaeDqZyfSjddfGwLrbHEubCLqqUHJGlpmwuIUiJU'),'1998-04-07 00:00:00','2020-11-29 11:54:21.423795','2020-11-29 11:54:21.423798 +00:00','2020-11-29 12:54:21.423800','+19 10:36:29.000000','+80-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (38,'PjonI','k',207567762603,322566905706,9781633.57482,219553468704805.31565,8031973684638133664919.909327856533,620343781600000000000000,'Dummy clob for API method get_a_row: uCNbrYAhfMDiVfSzWCpqmkMZgoKKnlnCcrWtfkmBhrzDrPDerWtdhs',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: aqYlfKokIEacAPEBDtptdzPEXLEnVdfdTPIZpYWJlSbDHUEikLnHhHvxBcZBnTNbTiBqobKpLQxlTTnIXsvClbbU'),'2071-10-07 00:00:00','2020-11-29 11:54:21.424208','2020-11-29 11:54:21.424211 +00:00','2020-11-29 12:54:21.424212','+63 12:34:50.000000','+70-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (39,'Ac','v',921850361116,284237455306,4598097.09639,935664731463471.90254,550237047542676389945057.321523614296,700168702700000000000000,'Dummy clob for API method get_a_row: KlpswVshLlwulflUhkoDYYuBXaJKOGlbsMLixEJJrGSeI',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: qmzHadQLNhMzCKcdIDxIcjkveYrGhhXlnWiknfSyJELOsZiSNoOvNtuVKqOIKowAEujppucSIJWVISNsNGCvaRGyNwsxTPzNzvE'),'2034-03-20 00:00:00','2020-11-29 11:54:21.424625','2020-11-29 11:54:21.424628 +00:00','2020-11-29 12:54:21.424629','+38 05:42:25.000000','+96-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (40,'WLINYw','D',695623881047,111234949856,640158.40412,997243173116576.8395,344653748934207095457061.29273085822,822604302500000000000000,'Dummy clob for API method get_a_row: EpQbgvJzwRDEqWHtxLaHNbaieTGGWTBtZmxLTgbzqYnTxSqbdXOe',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: SyjJWhCOKsVDBQJDjsnjNaLuRJIrUkNlAciIfOhrTUtZDcBBiONlppljHrArSQALVEMgfrvCMhJRDMwAXWdKayVI'),'1978-10-10 00:00:00','2020-11-29 11:54:21.425069','2020-11-29 11:54:21.425072 +00:00','2020-11-29 12:54:21.425074','+68 00:56:35.000000','+65-01') +select * from dual; +insert all +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (41,'ZGGiTwEvvWDt','h',690504023653,609125871445,2680442.38084,574043400166561.11977,41830902397548873662388.785478638931,848289451300000000000000,'Dummy clob for API method get_a_row: KFUvaIYBPTEcWWzGztQEydCfkUoPknpYIKpdgCO',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: DxVRThqlxgQhJBmvaJLKwNZYduFCYOqDrlVRLsQiBFxupbTjUBocPoHhraTsvgopRlyVuCebPJFlot'),'1930-04-19 00:00:00','2020-11-29 11:54:21.425469','2020-11-29 11:54:21.425472 +00:00','2020-11-29 12:54:21.425473','+96 21:52:36.000000','+78-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (42,'kiLpJHYFYTrwPj','x',209337691057,684917261626,2094303.29357,877009557186654.16541,273383621110214365990129.275798127919,88927788910000000000000,'Dummy clob for API method get_a_row: XFrYYWBcRJweRniRpvUqGiDZYZzxPZbGdQHlRJWrsoULwxQ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: SHpyHNmweqVnwdiuZDQiwEJhkoCDgUxrgovWnOCHHcZOmFlRskutCaECwsBni'),'2038-12-20 00:00:00','2020-11-29 11:54:21.425898','2020-11-29 11:54:21.425901 +00:00','2020-11-29 12:54:21.425903','+75 05:36:19.000000','+20-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (43,'lBggpwjJvzdZw','i',905696983958,37035120577,8776194.02919,552922580370531.54506,637053958731641460440395.905003601825,936887010000000000000000,'Dummy clob for API method get_a_row: nauQFZyVvhzkWHAHEEVQIRzAlsKEBhVbZQurGmiJCFbwbTiezkQrPBzYTEUHGTxUxtcctjRHKxNkliekdbvQjUAsVOyNFgdzzEZV',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: zlJidbBjeJwgPXqoyNTIbpyPuGJBnFohQu'),'1943-11-24 00:00:00','2020-11-29 11:54:21.426318','2020-11-29 11:54:21.426321 +00:00','2020-11-29 12:54:21.426323','+10 10:20:22.000000','+98-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (44,'BeWDtfrSHfOT','u',852825616198,376616636560,6805119.38408,325460685829870.58255,623060066118514162677802.117839212208,797602677300000000000000,'Dummy clob for API method get_a_row: DSCHowtiXAHCKFajgMMKJlUIazLoIDexhAtFIGPLuuxoMnwMexabrQCeROvxAYgEBBITLquaHJyWYQVExmQzUhbyOpCI',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: vQwvFHYdrnlHZyPhYiPAMwUFIDQqKbqmLWDPGuCHJqFLOOBFKOOBzdkDTMmQjPPCKpXftRph'),'1998-12-24 00:00:00','2020-11-29 11:54:21.426740','2020-11-29 11:54:21.426742 +00:00','2020-11-29 12:54:21.426744','+39 05:31:13.000000','+41-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (45,'ResJEb','f',672706141957,805497025746,6185856.08363,793004108091196.15663,199909632617517763487066.43683720343,338451939600000000000000,'Dummy clob for API method get_a_row: WNQZVGdBXrMKfMLQpnqfeMCKtamwBurNSyT',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: KyEGqNQcQuIBltgjhWOPnDWWBVOqpg'),'1942-12-07 00:00:00','2020-11-29 11:54:21.427130','2020-11-29 11:54:21.427133 +00:00','2020-11-29 12:54:21.427135','+80 05:18:26.000000','+62-00') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (46,'IuG','M',590716106765,396707670156,3636739.09098,612218547484712.18846,669383057493053712779403.864553576008,335181088500000000000000,'Dummy clob for API method get_a_row: TNvibVQpuRVHJWygXPYrbduJtYPJTGsyvhjPzEWVMdeLbRIOLPNIfZsNlKsubInpzFXJaVCjtCDD',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: CYFocSyfkLhsbKbMKLLjBUCnKyESQMacRSanKtHtzWshikngNvcDYFiNWKGteZHBeHfmEiFJiDQjFpTYthVoRIpodggoSO'),'2080-11-21 00:00:00','2020-11-29 11:54:21.427543','2020-11-29 11:54:21.427545 +00:00','2020-11-29 12:54:21.427547','+57 13:27:22.000000','+73-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (47,'qvysndvBlQrci','i',939661995221,806037945469,1460277.93949,767916427940944.65056,242807758446965834857649.638194630182,517967716900000000000000,'Dummy clob for API method get_a_row: pcnbSCTUsWfMmvPvtjfNPMGgZfCmnGorHyhbUFVCPDHOsrHRsQmtYkLOHqOGIHLzVMoGAkxJ',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: mcHDNyRvpfMqzFOovhdMgCkQvVtbEaeCPBcxJgDftSzHROKIWjNRztChyBeRYwyEhooJmSUpAcUyQuYREG'),'2074-03-13 00:00:00','2020-11-29 11:54:21.428010','2020-11-29 11:54:21.428013 +00:00','2020-11-29 12:54:21.428015','+08 09:38:41.000000','+26-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (48,'Pid','k',521942948220,127132020445,7699708.78427,331363478268106.01496,77912650408414790792969.027776030706,640507861900000000000000,'Dummy clob for API method get_a_row: uapUXHGbIIvWAHjQuJbjWFVkIMcfuEkFchdqJpollPoPVgDOGJaasoTCnRzRLrglpYNKxYCgYQysm',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: zOWCFnsEHPydIVhVWbnCZTFGueaYSfNSRJUFFEwoAoCVffuZHMSYLrfutwbYSGXY'),'1999-03-04 00:00:00','2020-11-29 11:54:21.428439','2020-11-29 11:54:21.428442 +00:00','2020-11-29 12:54:21.428444','+37 15:16:29.000000','+57-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (49,'PqXFyzf','r',872015553519,938017308355,5781788.59331,441245768574462.06413,873206863330695667103981.741432751717,245502309100000000000000,'Dummy clob for API method get_a_row: dZtkZnNEIuxUfNLCwHXwVqFcvvdynQuoVda',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: pDEsddjrzwzUFvYcAMfYUXiNEIteYXSVRQvalHoUmFwBqCandaNqBILuMyXBBBMQMvuqCMxnScaLZJBijGUZgdPdOScmIAlzB'),'2066-12-11 00:00:00','2020-11-29 11:54:21.428856','2020-11-29 11:54:21.428859 +00:00','2020-11-29 12:54:21.428861','+84 20:17:28.000000','+51-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (50,'nB','S',239465758487,562766699282,9107040.06735,91349831715036.59587,833943220928311635826282.87576840664,526114942600000000000000,'Dummy clob for API method get_a_row: OyeBGRWfBKzyVnpTESUayFtNeoeDqxnqeAXZMuFzKqMiWXHMiJPtOsntmIExPKVfKW',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hiuTOIhIVcBZNxuxFqbkRJbWcFbfUMkPESbarqYPruNHkCBDGlFxTyuJnWyiVR'),'1992-12-23 00:00:00','2020-11-29 11:54:21.429280','2020-11-29 11:54:21.429283 +00:00','2020-11-29 12:54:21.429284','+49 21:32:00.000000','+10-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (51,'MxkorB','d',502995667790,667120399850,8162138.60718,642580453196477.31258,548491493363320855819410.813217558587,770364120700000000000000,'Dummy clob for API method get_a_row: hraZQfbTnASWsAfuGuHXYXfWkPlycCZMUvSuiCqUxPocCpNDJIHgZkwRHLYshAgHw',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: QbDWPDKvzbMtatYseBnVebHqmQCWctAEEGLcHTDHHldWKfEDuUWKjDbDsFsrxKzDhYVhMbzmnQspHMu'),'2027-06-22 00:00:00','2020-11-29 11:54:21.429690','2020-11-29 11:54:21.429693 +00:00','2020-11-29 12:54:21.429695','+71 11:38:14.000000','+94-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (52,'wLE','E',578588320868,70913282198,2162309.80214,799981252156474.15522,192391044233482006088810.596417120637,986261085800000000000000,'Dummy clob for API method get_a_row: ogDNxsZqeXzQLLjmoqOnPRfBMMFgFzATGGIkAakHMmHrWLkEobBfBuZAtJtCr',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: JleHBLlTuBcWemdPGAnHLGtZTzPBnrBusrtICIfeGRygReJfBhQFJlAdluJoDmOmsW'),'2020-01-08 00:00:00','2020-11-29 11:54:21.430128','2020-11-29 11:54:21.430131 +00:00','2020-11-29 12:54:21.430133','+62 21:10:52.000000','+25-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (53,'ndlCFUggGwc','Y',570565426862,726460972895,566692.16006,942179680327574.92427,115557302854323520372836.453153432052,910786687700000000000000,'Dummy clob for API method get_a_row: NTDMiqOMJMJNZYLigptVFPYcXFvrCFRhMIyzCUpGJSZQRWHGXkLZkYUlYyDlvgtWVHNbtBpqHSmXlgivpGQndmTkHC',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: xBjdeamsKXxxfCxwWEDgOFUYYSMHcKyZukSVhEehJegasEMJipzzMXJWUwkHkkSEHQSNHcdfijHHJhiH'),'1933-11-04 00:00:00','2020-11-29 11:54:21.430590','2020-11-29 11:54:21.430592 +00:00','2020-11-29 12:54:21.430594','+24 03:46:39.000000','+15-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (54,'gDcSo','l',320788343262,890751924465,9727566.526,778316629864265.49594,6100945035267938383060.198417958605,640751455700000000000000,'Dummy clob for API method get_a_row: qYaYOQdCSyfqZBPhbMmauZmljUSMEaWBBefTJTNvMyIDojiSoDesCwFa',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: skTqAETdKKiUcdnLveiJVEYYwFHWcbuXQnzTRPpITmJMLGzzIbLRKySpqaNcfOAayiousdTPQrWgLYYFgTomaMNGNNv'),'2090-10-15 00:00:00','2020-11-29 11:54:21.431064','2020-11-29 11:54:21.431067 +00:00','2020-11-29 12:54:21.431069','+56 19:40:21.000000','+41-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (55,'DkT','Z',372497428928,656080397128,9713070.23265,429617438366346.57441,435384708365855092047563.897343220597,816951085500000000000000,'Dummy clob for API method get_a_row: yfdvAZrKPgotRdPPgHLANMDLWTfCKwvLjAXKYFvFpAPsowxgKRkUvdmVyJxKWmVyhLD',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: jKUVIbsCIAsgkPWGZighJUVvsQDWMTiXHRCStcXEefCjYTRvUCfqgZlbbYrVubaQSuzdstKENiQiomrNSjNtsTz'),'2032-02-12 00:00:00','2020-11-29 11:54:21.431518','2020-11-29 11:54:21.431521 +00:00','2020-11-29 12:54:21.431522','+80 20:46:45.000000','+08-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (56,'xZBNRNb','i',712857805675,928776430770,4906298.81118,414819328416169.45622,228797847540223602234912.092486387649,544236794100000000000000,'Dummy clob for API method get_a_row: akqiRqluLAgWKSFHVuhoevLBXsERVGnBqdZJmAsSAFeZZaAmUnARZbbxcuznxZvB',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: FfxSyZVAMNDWLorfEiviOzSYZxjZnTeLKWsYZIUzOUwnPpIzijfouUBechsltALWjvulwL'),'2018-07-25 00:00:00','2020-11-29 11:54:21.431972','2020-11-29 11:54:21.431975 +00:00','2020-11-29 12:54:21.431977','+37 01:50:24.000000','+57-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (57,'XHgPNing','n',66137138957,702245725829,2055514.82723,372848575264593.92959,159486392284683490919144.881982958724,612601855700000000000000,'Dummy clob for API method get_a_row: snkEJuHYJPfQLmlQmcGnWkFtYfDOfXFiBayRJnpsVGMLdQQaJlY',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hjIRSnTpRMGLpdhVabJHjTyzBWUiQbhMHOzUNRGbAwEKkugDrZitEXS'),'2031-06-04 00:00:00','2020-11-29 11:54:21.432376','2020-11-29 11:54:21.432379 +00:00','2020-11-29 12:54:21.432380','+12 13:59:40.000000','+28-00') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (58,'Z','G',626774838284,59671468558,9047292.59455,763432866443516.62458,938822666586467614486794.708290907413,511576156900000000000000,'Dummy clob for API method get_a_row: DomBVVPWaIpUEntJWttdbfqmgMNLCimiPqOWRCogtUizkukVZsZkMyWjAzMYECFqyErWphqPNbdLaaH',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: EmvPgJSQqbvWEuXsYZVZcaknTDvnYeqFmHnlMYG'),'2058-03-18 00:00:00','2020-11-29 11:54:21.432799','2020-11-29 11:54:21.432802 +00:00','2020-11-29 12:54:21.432803','+59 17:50:52.000000','+54-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (59,'mAz','D',9823596851,856651822498,8800562.86538,467324335430037.72808,808360270203118952576750.205485260587,823790764100000000000000,'Dummy clob for API method get_a_row: SOVzKurpqMNEHolTtsXseLtyFhZxRAGzSgOezfiRhQlxNIEWVWjULabXvuxbvypItbjH',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: TlaIJqrUxVbDIScaiXObLGueXaasVFhcpwefaMfXwyzDQEVhMXUnqCyqL'),'1900-06-23 00:00:00','2020-11-29 11:54:21.433184','2020-11-29 11:54:21.433186 +00:00','2020-11-29 12:54:21.433188','+01 13:55:28.000000','+92-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (60,'FjjeIy','W',264044779396,595331905443,5423050.55774,221310916928097.66971,322404873774808189652338.841118748693,230241643700000000000000,'Dummy clob for API method get_a_row: hQnaDjtpobCfwIuFvrfGbDWNXJiXMeaPKineamyfnB',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: nzqiiSXRZfcWEaVyQNUFzKqKXvtlisltbuEwqh'),'2097-01-21 00:00:00','2020-11-29 11:54:21.433576','2020-11-29 11:54:21.433579 +00:00','2020-11-29 12:54:21.433581','+93 20:07:56.000000','+38-08') +select * from dual; +insert all +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (61,'mv','H',64702323819,596566710124,9534392.8758,846293995322209.38584,303038095469049448791177.487839367363,210676529500000000000000,'Dummy clob for API method get_a_row: xKsCafPGQtyefpZEPoBhqsOOssBDPxAeyXpkpihoZqjCRuPYAxjPOlHpDuGqdPkOQnPUYHtpfkjHndmsqlSejHTCRva',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ySDqeyWpCINfiTWCPthufZUMXEQijpnWaxgJjGxqmAXZEphyBBwwUuf'),'1982-10-16 00:00:00','2020-11-29 11:54:21.434028','2020-11-29 11:54:21.434031 +00:00','2020-11-29 12:54:21.434032','+45 09:28:16.000000','+77-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (62,'cGuo','Z',382361264771,871595014417,395332.81005,879168794881954.29528,90972176220530714402912.569658129484,372834850300000000000000,'Dummy clob for API method get_a_row: mvjWavIYENpKQGGoqBXKBpkrFLjpujLPICiDHwGPzQJawEhEunFaYEdsHTMVfToNQXNXCMDqRgkxtRvAyo',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: SopHPWvYmPucQnXxzRlvMTpYRWZtFHcnTIwdmSmKSHgHFDiwLDr'),'1947-12-03 00:00:00','2020-11-29 11:54:21.434468','2020-11-29 11:54:21.434471 +00:00','2020-11-29 12:54:21.434472','+36 13:46:41.000000','+21-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (63,'V','X',239054849792,117651471900,4788307.11247,817099437504840.40905,111911272863883856151238.937985465086,56369119400000000000000,'Dummy clob for API method get_a_row: JMlfGuQokkwnETwIZJWEMckNkMvKjOna',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: PDDsgejBolqdIVPYGZFGaPtZgqpIDOUAArxzarayHupkFdISUQpoDTKwutBksEBpcndjMqWOUvrgtCs'),'1906-07-02 00:00:00','2020-11-29 11:54:21.434861','2020-11-29 11:54:21.434864 +00:00','2020-11-29 12:54:21.434865','+13 14:56:08.000000','+65-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (64,'vlykTvcnkiTTST','g',787540478184,230602253836,6256955.31405,405386882344502.12419,929371522841474445691794.720654714979,422978354500000000000000,'Dummy clob for API method get_a_row: wbueaYzUgWblqgrarTJDboTkRueQtgYipxnsiyWvhayX',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: htDmMHIkPvNWZvUEXCVTOeZeNWZtHbgWMoDGm'),'1997-04-25 00:00:00','2020-11-29 11:54:21.435240','2020-11-29 11:54:21.435243 +00:00','2020-11-29 12:54:21.435244','+57 21:22:55.000000','+21-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (65,'NnVZRBodwj','P',549679588799,622585299911,3805712.60939,676454779230731.90315,797422155074193170971177.039409642098,136372238500000000000000,'Dummy clob for API method get_a_row: MKmTTGhzBgUyfdUKdCPsQmwNGkTRkaKv',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: pWhKoEalUAiLDvCwcNqlBOTvFlDgsvuWqgpSYlPXPacprQDNhIWbZPpvHlqhzVHLgYdchSUroSbteXJmtZIRKkRySgz'),'1995-12-27 00:00:00','2020-11-29 11:54:21.435623','2020-11-29 11:54:21.435625 +00:00','2020-11-29 12:54:21.435627','+14 10:39:55.000000','+98-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (66,'YiXEVa','V',80885450828,741583618567,9729457.62062,662484011754709.09894,23382868237808674598139.863673773999,227336527700000000000000,'Dummy clob for API method get_a_row: AECSCDTHovsHmjQfqqrcDHyHeOQutriRXPjphPyJJzYelmiPdAhTQUjeSSNwuCZMLbw',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: zPpzpQHptgXHOxOKMSvqhwlcRXWUbVzkBXOTQoJKBGmgQbGHUVCsYixQmL'),'1975-08-29 00:00:00','2020-11-29 11:54:21.436092','2020-11-29 11:54:21.436095 +00:00','2020-11-29 12:54:21.436097','+33 17:07:30.000000','+90-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (67,'bemXVNZhXyY','j',729278281838,863790102602,4768258.65133,249485512831040.20269,1896002272088845996869.107901954755,75958795780000000000000,'Dummy clob for API method get_a_row: fUdjdWtqtIvSZPlvCAROdrtzxnVNYTBrSmbyRfYVsgguvQz',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: kfpHJKMdHyxBpuiLvXQquKRugyIYItJiSKUidNUZlY'),'1900-05-28 00:00:00','2020-11-29 11:54:21.436441','2020-11-29 11:54:21.436444 +00:00','2020-11-29 12:54:21.436446','+14 11:08:38.000000','+76-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (68,'kpbRDRdygREVLZ','R',694214585821,381544119847,1527895.58994,50451709678491.93967,713923583646344476122226.897002889871,634656009900000000000000,'Dummy clob for API method get_a_row: dqhLqSNlzIZEowVBZSUzYXiguKooCSLeozCLfXGbhRHkjjIilCpL',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: AwXAWAtlZQnHbPTTbdGkbkHGqPgMdzHTICpVC'),'1916-05-01 00:00:00','2020-11-29 11:54:21.436837','2020-11-29 11:54:21.436839 +00:00','2020-11-29 12:54:21.436841','+31 22:25:17.000000','+78-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (69,'ECKmpVe','S',220946553181,842856661813,2293525.68029,76788695919232.66589,262494436617093647389924.64273513094,995684008700000000000000,'Dummy clob for API method get_a_row: sFBcFGXUNPwmkmWzyqbzGeBEYqSWoykKAwJqTfshphSxJmBNkotVc',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: VQvUztFIfNMFcDRPhnYuwQQCRJfLsQxFavQIjYnXuBnvBbBiBJipmtBnZbfsKCNFJdOMcEnboLpyrSlTSOBeKytAXwBubBdDeB'),'1931-08-23 00:00:00','2020-11-29 11:54:21.437310','2020-11-29 11:54:21.437313 +00:00','2020-11-29 12:54:21.437315','+57 14:46:12.000000','+80-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (70,'odLnGrph','U',34529894342,136982369806,1120955.58641,621454158678642.77223,502164396380336648986533.060252335514,301820843900000000000000,'Dummy clob for API method get_a_row: jPecXgqnGxtEoWhOAPYeNKILmSUJGJoVOWpBEGROhdJFlQzFFiLjbJe',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hyldpfIVTiGtcychsijybIRsAfshTSqwUbfulZkALPyOPcmyQviCSvNhdeL'),'1934-11-04 00:00:00','2020-11-29 11:54:21.437635','2020-11-29 11:54:21.437637 +00:00','2020-11-29 12:54:21.437639','+94 23:20:46.000000','+19-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (71,'OYNiExiNqlEq','a',528865650185,706565636324,7260177.556,263514095565711.2627,81387659776398656716998.989760615198,579622163300000000000000,'Dummy clob for API method get_a_row: QWrCJCTlGFLqNiSpXROuSROUqoqvCpLpUVKncDJSeBTeXKQlPaXQifBHLixMrfabbWeqmcIBSiY',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ceFGOOMkUMwgDIzUjkuFXyVJmZmhIwGKKGNZxJwMsXHeedLVNCGpgtzODsnXLSufTJFBSwhcHCkBcgfzctXpqGY'),'1954-05-06 00:00:00','2020-11-29 11:54:21.438078','2020-11-29 11:54:21.438081 +00:00','2020-11-29 12:54:21.438083','+97 01:55:10.000000','+54-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (72,'MgNfwasyUFrrI','f',279657414079,613598119662,7337150.46141,216986671300590.79444,232919964895097712424597.221380750762,31763699610000000000000,'Dummy clob for API method get_a_row: TffFpQpQdBsDIPvWHImScMRYiPaImMaFozNeboaMPPd',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: hGduMJdvHQiBvFOccQWSBFijDViWYPkJSvSuYEEudJHjFbHDFweQVMB'),'2042-05-11 00:00:00','2020-11-29 11:54:21.438487','2020-11-29 11:54:21.438490 +00:00','2020-11-29 12:54:21.438492','+54 05:19:41.000000','+48-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (73,'aL','w',380537094924,198098634095,3608502.58966,443652450640840.70809,117275458228896974797766.105731388624,495756021600000000000000,'Dummy clob for API method get_a_row: JyUJrItgVtWWFOHlwdVmhmQPaedoLxWlQxmjDdObRxqCCzeIZzOWcvCkdxxCGQSmqIFIrWMObMpjmuXAdr',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: otYWuukmJtgNIGwLtVqWAMDGOqakHpIqzpoglssSkCZW'),'2028-07-02 00:00:00','2020-11-29 11:54:21.438852','2020-11-29 11:54:21.438855 +00:00','2020-11-29 12:54:21.438857','+18 00:34:09.000000','+71-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (74,'q','Q',48226993722,690894229046,9819637.40067,141327116890965.88792,25951916928675325999516.881455747301,688345805100000000000000,'Dummy clob for API method get_a_row: eRHkFclvyfhsbobPHDqooeGHEnBbnlenfbSxfODUoQRtjjFnstgJUvBjEJLtNPjeGzpGCfkvUHiYOMvwghkHgfWklert',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: nyuQGAmOpjMAOhiHxfkrwBuvFOrdhAgSjqkOjKcBfJhwSqodCVcasnZsNmunAShYaxOysL'),'1936-05-15 00:00:00','2020-11-29 11:54:21.439268','2020-11-29 11:54:21.439271 +00:00','2020-11-29 12:54:21.439273','+54 18:20:46.000000','+29-09') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (75,'YIjUEZnFLw','f',42354368446,688233431814,5662726.56916,193907025859217.57967,512021512619499972522901.662786804572,111708197900000000000000,'Dummy clob for API method get_a_row: uKKDMukePYBCwJjNcgWiooAAPdDbBUstXybFQoHgGXXgsgaMGPOSpXlKnOfOOcXnWdHMyquiEuOgUbMW',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: SuqrdDLMGTeQeUcBftqWUvLKdyKzxhhgZFGGbyjkbrPVOLFaHWrwHhEwtAqbkstgYkXGTMlGkFsjGQllVBvFPldTFwh'),'1948-07-03 00:00:00','2020-11-29 11:54:21.439705','2020-11-29 11:54:21.439708 +00:00','2020-11-29 12:54:21.439710','+83 13:19:58.000000','+53-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (76,'iYrhrckgO','p',639325172430,287232900109,489632.26058,736822317704808.6681,632669827806564156067545.3008351634,998435450000000000000000,'Dummy clob for API method get_a_row: GgSqZOUiUuwxPaZhyQZKbZGNXZDUIpJOre',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: oPinBcjNiFGZRAutrkBQdGVLiDewLZbleINjazmshfffXTwMtqarxAqXSMkNBLyNOTIrzhlY'),'1959-09-14 00:00:00','2020-11-29 11:54:21.440123','2020-11-29 11:54:21.440126 +00:00','2020-11-29 12:54:21.440128','+63 21:01:29.000000','+34-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (77,'uEoIZSIxU','w',541225280700,203485249517,7196180.67471,112759202963647.80484,911251276732308078268723.063103821786,971258474500000000000000,'Dummy clob for API method get_a_row: OKFtaNHKRzcJDqofcTXyHkzBQPfehDzHBXrrkqoLFddNFIAPqvwSsyefZlYIQGRTWTBoh',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: qixALMsAQHKbwaBembIPABxGecxeBnkqxovIekyvmkNViSlEufjBpfjUKvfNzcrOwGkbK'),'1901-04-05 00:00:00','2020-11-29 11:54:21.440530','2020-11-29 11:54:21.440532 +00:00','2020-11-29 12:54:21.440534','+50 11:13:25.000000','+70-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (78,'jKYHhg','S',386137849791,220930308297,1435489.59256,686227058171597.80728,523185178619979885056099.635160583673,426558305700000000000000,'Dummy clob for API method get_a_row: hXYecDyKHusUhChkPWZWkqupYlbEbtpvbxrPeuVAZG',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: kFxtKGgqnBoyFIAiExnGjrjkMxDlpcRHqooAfSRrchnAkxaTbibkRpcxCAezjxxdqczkaRagebGTpJEofeVGStEsp'),'1970-04-30 00:00:00','2020-11-29 11:54:21.440985','2020-11-29 11:54:21.440988 +00:00','2020-11-29 12:54:21.440990','+00 07:18:17.000000','+39-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (79,'mlLP','A',127899120540,199446261468,6540832.26609,76696347868089.85098,148308354950767614329619.720201545218,987449987400000000000000,'Dummy clob for API method get_a_row: gCEFqPmIcbMWzMqcmZKmyRsCzwfxpaCQQNrXndhxvfPwMDiDXJXvLtegyjDfppYsoEtnp',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ZiEajKVaFXFCtBThwPxuCdTFpkjJkCaHlckGGgUkDEmxhIXVHlzwQJdPSokTMv'),'2031-07-28 00:00:00','2020-11-29 11:54:21.441345','2020-11-29 11:54:21.441348 +00:00','2020-11-29 12:54:21.441349','+83 23:47:11.000000','+01-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (80,'SATjrkmqaxWi','B',213741023523,75761030464,4353839.94481,91781552612190.48095,317619531665055160851478.121381224606,388935673800000000000000,'Dummy clob for API method get_a_row: YqzggmezmfxeYhHopDUdKnxSVSJGZWOUPqGUqoHVZlpTYjvOVZIaNkBuIJmGItUCWDyPWOKPoKxiXt',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: rrShnGQPYAtazibXwoojvyFdKjGJkdimAcUtPKkaXxZOEqiLdygeVzKCaYrXkyBYcNTOsLyTmN'),'2092-01-27 00:00:00','2020-11-29 11:54:21.441734','2020-11-29 11:54:21.441737 +00:00','2020-11-29 12:54:21.441739','+01 18:46:47.000000','+76-07') +select * from dual; +insert all +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (81,'nGcsobBLRzI','y',998188186885,213890333400,8722293.20942,562886641094407.65195,945152669809591913665686.896772040157,39559762500000000000000,'Dummy clob for API method get_a_row: ZAatxhlRvqxTQMWuSXMYlonqnixgTzKPzZWvuDXXsFoKOxrOAvtUeCXMjYaRhwhuQUPLPtRLdB',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: zleFoerByCicixxNbzESIZEVdrIZdwcUQhcBNPbPjeKdORcnPyjTDFEdcneRbUWOjKdwNZcLePvXr'),'2028-03-10 00:00:00','2020-11-29 11:54:21.442218','2020-11-29 11:54:21.442221 +00:00','2020-11-29 12:54:21.442223','+16 20:47:50.000000','+86-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (82,'gy','U',136824198571,354622892063,7869136.04544,702181749276155.37573,964400545533908119018554.775704318048,570315969600000000000000,'Dummy clob for API method get_a_row: KaOLdMRzqdZTKVCHZTuqSEwMDkqrDZnfaxykzUVaFPMggCmplgJDcDwOLFCglEeQbYEKpYieiHWzHjC',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: RzugcktlCBRlYArgnQqWaVTTogCkmzDcExNOpYCeZVvOYaKVYNVhFWJFgxQPjxNHyezOYuKNmlkyvepNtYRrVM'),'2029-04-02 00:00:00','2020-11-29 11:54:21.442581','2020-11-29 11:54:21.442584 +00:00','2020-11-29 12:54:21.442586','+70 21:33:33.000000','+48-05') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (83,'lYzuc','U',410968656732,672038283829,2097540.62698,986073987852628.32582,110842023496468471994063.341978448996,618540542600000000000000,'Dummy clob for API method get_a_row: LAKQLkegLeRHXPreRUwgScRBXqSzfzaWvDJSMRaVaDtEcnuRsUYwZKXjqdPq',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: FCGhbakhSzsXqkvQMSQLrwFJyFlgZIwWdcIeToKGuKQLJrpWpzBUMvtDIsNBjhDwcACJYFWGdhWAnu'),'2023-11-01 00:00:00','2020-11-29 11:54:21.442968','2020-11-29 11:54:21.442971 +00:00','2020-11-29 12:54:21.442972','+76 02:45:01.000000','+72-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (84,'ZlUWgCVNCWKS','h',944807906872,240424590969,5604153.36864,366292619823028.45371,630009583265240651787069.365121995482,465388331600000000000000,'Dummy clob for API method get_a_row: slZhothyICCnKJxWBXKBtQOSbaXrzOzuXtXhkRSqDiPavEdinOmqzMSTMwZoIgsfvZUvbQMFGaboVrBOpJizaRNkpxVtyLWzIkVX',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: pntpOfVDTiCGIniyGQlWqoZciEPKxLqhoIeYNUelwmwFJcwSmkfaKwxYrJz'),'1948-01-05 00:00:00','2020-11-29 11:54:21.443421','2020-11-29 11:54:21.443423 +00:00','2020-11-29 12:54:21.443425','+82 05:42:09.000000','+81-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (85,'WIMjCDhbz','W',892092757383,405067707026,7796939.51694,894235449800264.88395,700483726119503275479761.203126741945,161701555200000000000000,'Dummy clob for API method get_a_row: XIDRFCPKGBJjbhzMVOFEhFiugrCHQJKNaKqgVHDmFtEaipBdaVfXgLkEzFYWLZXgLAQwoDzaIKePujXGMhexUu',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: aPPDghbSQuVWXsADigJmbuHLMmDUgUpGaQUdWeSrCfBmmjbptrRYP'),'1909-05-21 00:00:00','2020-11-29 11:54:21.443781','2020-11-29 11:54:21.443784 +00:00','2020-11-29 12:54:21.443786','+55 17:02:22.000000','+45-03') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (86,'QZ','L',791288507409,1840031637,8765603.77472,443130529171243.34028,355530361758472638727249.758424462353,907202369300000000000000,'Dummy clob for API method get_a_row: ycMBakQxKZsFDNAvwidFdTooQwUhJhFEzsHCuxJpOBApWYDvfHPhdqgOYgikRWCJSzHyKJkLjdvzrsjwDjPmXlTYY',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: mMTLzhBHnghoGPlKhUiPLbPyXpHVhrqtKeUjtkljgYhqLpuwHGBeAooJBbhgYrByLBYzAXtNtPFWRKufvIAhfeD'),'1948-11-25 00:00:00','2020-11-29 11:54:21.444199','2020-11-29 11:54:21.444202 +00:00','2020-11-29 12:54:21.444203','+12 01:19:20.000000','+55-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (87,'raFqMMoKBV','B',328709410195,970864925114,6749330.35397,785760490127757.6518,951871804193306759399465.895040032453,702997750000000000000000,'Dummy clob for API method get_a_row: IRntaBOZqTtEkqORQPvSZlfUGFJtLIXXS',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: GJmMuzGNsNukgPfyrZzzWPXxnmKlwIrzNXCJQWdnfTVLjmEATKHumpVtvwxrHx'),'1952-03-06 00:00:00','2020-11-29 11:54:21.444616','2020-11-29 11:54:21.444619 +00:00','2020-11-29 12:54:21.444621','+11 16:56:52.000000','+95-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (88,'mWs','L',124190930052,25708819524,5382209.61479,962650588406287.65905,122689339418057866844593.107866975298,937548042800000000000000,'Dummy clob for API method get_a_row: hXQfuBiebfeyIVOJfctWKVOodjkoSUzLxWpBRncWBkwoIYsBEopgoqZKGAUNWiqYCUzaJrfhMqLTtHph',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ZVHKZVEXKOnWTuDFwPRPYiReAAixOrfZqUgHMdZfONfKalSmalJfYyDZWpHnNjw'),'1904-03-13 00:00:00','2020-11-29 11:54:21.444983','2020-11-29 11:54:21.444986 +00:00','2020-11-29 12:54:21.444988','+66 09:34:36.000000','+45-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (89,'KcxZyUjRamr','m',816935749669,665618987524,9846947.9027,238084245369026.11316,182947376504333229652592.23341102991,776527384300000000000000,'Dummy clob for API method get_a_row: vESpKZiGrmcxwRcGzNbXWfexecAMfKGWXBTngaMUIXffyZqOelTWVqcZhTCpjpcPovkdroaIk',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: CVEUMIOUiAAjwFVVcPPokxSPIqNQWOsWraKpiwn'),'2041-02-01 00:00:00','2020-11-29 11:54:21.445363','2020-11-29 11:54:21.445366 +00:00','2020-11-29 12:54:21.445368','+81 16:28:29.000000','+40-02') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (90,'NsHdK','C',441604769506,212570457646,2363945.46951,356920815344774.64307,728038649454778621916283.990390713094,674005866400000000000000,'Dummy clob for API method get_a_row: FmRkumSbZEJtuisoCPtOCKjtaBpmDuobEnRniJrlqJFEsFzqnRtXSgdgoGWxgGDdragcsjZsZzTvQik',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: TjJVaRHsunkPQvOikmhlpYjMRMSjPNuHqfTHYLWmORrJfobKm'),'1901-02-09 00:00:00','2020-11-29 11:54:21.445824','2020-11-29 11:54:21.445827 +00:00','2020-11-29 12:54:21.445829','+61 03:09:22.000000','+51-08') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (91,'bFpeBAkTEWpGkU','E',471872046020,894392764827,4037186.35802,247949372224942.73416,209288623717840900458139.665572704073,447708733100000000000000,'Dummy clob for API method get_a_row: WsWadUsTHrgamtGlGgulYQrLTgvgTKPkOtIzirFgmqRLTi',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: lejuyLDXqZSGweIEWkpaVkMSsWMxszxwyPqeeNn'),'2001-03-13 00:00:00','2020-11-29 11:54:21.446135','2020-11-29 11:54:21.446137 +00:00','2020-11-29 12:54:21.446139','+76 05:18:55.000000','+24-11') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (92,'CXfs','E',902542779820,481007651499,5754197.8299,29207949207177.94449,914241984066613877959372.472503802744,852734414200000000000000,'Dummy clob for API method get_a_row: CdNInMyhBmqIAUcddrTPaQpQrLxQJvGuQfO',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ydsjWebtGouyueUkJdTtpKZwHFcRRFozyVNAVuIgEkOlqRATYaoFpndFjUBnjQsEJIyPYcQNNi'),'2018-12-13 00:00:00','2020-11-29 11:54:21.446511','2020-11-29 11:54:21.446513 +00:00','2020-11-29 12:54:21.446515','+60 12:29:18.000000','+60-07') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (93,'XGsSE','q',295017917116,755846817993,877467.37755,201200917702433.98309,22239375266012846108537.194867259045,723295251300000000000000,'Dummy clob for API method get_a_row: gtyXNQzVyYUJrEzfnFqCCUiSivnibMTBccaqWvCtuMFIrjpLLCrywXzPolFpcSWbBuzNzBZiRwL',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: EXeuxegXkSQQOgfyNZUwGFWrkOudzCtAvdKmQmMNlnsPaeMMateYBhlomYXxhZYgwaDeSrLzMMLhjjDLIZBAkepiCijyM'),'2041-06-07 00:00:00','2020-11-29 11:54:21.447032','2020-11-29 11:54:21.447035 +00:00','2020-11-29 12:54:21.447037','+86 15:17:54.000000','+88-10') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (94,'YMnGqGk','p',9026422411,891758540339,9672219.00587,497507626542984.43106,961928789415986659585265.317475164965,351029651600000000000000,'Dummy clob for API method get_a_row: ZydtOOvhqYFzINhjTYDqzRTswaMNzpcBEkJNcKpcaZplOqRkpBygpBPVZpHOD',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: iuIPNlYXLtyscOHkdmcLuoqrWdaQbgiYWioCXnNdenuauwlsICBBCuPFYjfpSH'),'2087-09-03 00:00:00','2020-11-29 11:54:21.447390','2020-11-29 11:54:21.447393 +00:00','2020-11-29 12:54:21.447395','+66 13:44:54.000000','+98-00') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (95,'NHZXmok','k',598245422886,625079551777,5350033.6397,350353099922047.15843,586533124635235004574527.086270953815,518192624300000000000000,'Dummy clob for API method get_a_row: bcABzvvQiHwhNLDZwZBdTaIcmnQofRgcDpAktHqptnjFpczvxwvhqrUOQQpfNcsmxxRHTuOpNkiICIXjkLWWJAqTG',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: PGjjbqlBMIWOlLheqtAsyAcLBWdjGDnhODdqgymvRZXJvRqMPKspUiBQdNSitYibMAERJTZISXBtSSYRgWYalpx'),'2069-12-30 00:00:00','2020-11-29 11:54:21.447833','2020-11-29 11:54:21.447836 +00:00','2020-11-29 12:54:21.447838','+31 21:28:30.000000','+45-04') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (96,'dZcaFlQ','i',649982286179,884084787852,6699311.73643,745650453918403.70471,14424717681595900479138.921037915035,502447608700000000000000,'Dummy clob for API method get_a_row: zawloDViObylDXOMLhFQPFMyypmPSSeTIVkmanLaxaUOUhAxZUVJqptyPiBHVABWwjXdKamJIafjmNvYJIZJHYRYDmuwoN',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: uJsseHnGhuAtdCpWZrbQdZTvAWSaynjDRSYOuBCGEJSmKOoyvNKZNgsufKSduXKzNZHYDscdAuDnnHtvkczMUcyxdqrpYNGR'),'2032-10-14 00:00:00','2020-11-29 11:54:21.448418','2020-11-29 11:54:21.448421 +00:00','2020-11-29 12:54:21.448423','+50 05:16:08.000000','+32-06') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (97,'INMBolqPnSqOzI','q',306576935079,989775042276,2549808.65128,540218862648007.22838,109630207120227902278137.808365186135,672348160000000000000000,'Dummy clob for API method get_a_row: cwFPsiVgzMVsluBPFCchuKPlrigNFTeyqsCTTov',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: kciainnTZrmxvNsUflcxBAeqFXMEiwdpeKIcyDEQaTKAgXTV'),'2016-10-12 00:00:00','2020-11-29 11:54:21.448818','2020-11-29 11:54:21.448821 +00:00','2020-11-29 12:54:21.448822','+58 07:24:46.000000','+49-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (98,'zufQjRIDCvat','x',724745520889,102517839853,875249.26842,746776819339251.09794,971284174384940686518565.170128865669,651456696700000000000000,'Dummy clob for API method get_a_row: wGgcuhoSCDlxFXhfLJBpIhDaBtUPkWzvvOldBQDNJTQdQLXNvUIBLmTyABseEnOyRWbGnksUcRSZtaoxOcQvITuvPdI',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: ERLbqrjEvPiYmaaENHvOdJaNGIuhAjMsCEwTIC'),'2016-03-02 00:00:00','2020-11-29 11:54:21.449201','2020-11-29 11:54:21.449203 +00:00','2020-11-29 12:54:21.449205','+78 19:25:24.000000','+01-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (99,'AWbqJtmjSLaFJ','a',933890965612,942570252474,9649811.35418,387890938003512.57791,585711780110860135606784.975737095885,838002232000000000000000,'Dummy clob for API method get_a_row: kgLggmmDXJxeyaoHBHvDPskSZxxXrLnLKsdjGcqAkZtnKChIkWrAdTEKdIEYyaPiCbOECfHmhoqauSbKT',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: YVfsWoBhIECGimAHrNhpuSLibYlgUxyctdTlWDIWIFlqYiwiobHWceYztRZrmzJChVsFpJeASSgTAHRPztCwcW'),'2005-01-29 00:00:00','2020-11-29 11:54:21.449711','2020-11-29 11:54:21.449714 +00:00','2020-11-29 12:54:21.449716','+75 21:50:33.000000','+17-01') +into PLEX_TEST_MULTIPLE_DATATYPES(PTMD_ID,PTMD_VARCHAR,PTMD_CHAR,PTMD_INTEGER,PTMD_NUMBER,PTMD_NUMBER_X_5,PTMD_NUMBER_20_5,PTMD_FLOAT,PTMD_FLOAT_SIZE_30,PTMD_CLOB,PTMD_BLOB,PTMD_DATE,PTMD_TIMESTAMP,PTMD_TIMESTAMP_TZ,PTMD_TIMESTAMP_LTZ,PTMD_INTERVAL_DAY_TO_SECOND,PTMD_INTERVAL_YEAR_TO_MONTH) values (100,'YqbdvO','a',686062482895,131802698946,8944675.96907,766182784695356.48878,795504965950776212891438.420187744522,548049056700000000000000,'Dummy clob for API method get_a_row: OukDZUxmeCGelAWlwYBwlknCLhiTHZphHPmArfTQoXLDKGhiNOJNHYzacTXgunUlRsfdgqBkwMzvqVkZwrhOypIjiJhmTnBF',utl_raw.cast_to_raw('Dummy blob for API method get_a_row: rgrxjSJbIJyujzYKFvsccVzCMPAeDpMDfnnEDiXzqMsYIHsPcfwQ'),'1988-03-11 00:00:00','2020-11-29 11:54:21.450123','2020-11-29 11:54:21.450126 +00:00','2020-11-29 12:54:21.450128','+09 08:04:54.000000','+83-06') +select * from dual; +commit; +alter session set cursor_sharing = exact; +timing stop +