Merge pull request #7 from ogobrecht/development

Development
This commit is contained in:
Ottmar Gobrecht 2020-11-29 13:01:07 +01:00 committed by GitHub
commit 675dda1ec5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1004 additions and 340 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.zip
node_modules
test_export
test/app_100.zip

View File

@ -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

View File

@ -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",

View File

@ -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);

View File

@ -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);

View File

@ -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
```
**/

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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