The view SQL is not executed. It is merely described to obtain the field list. To prevent this you can go to Preferences > Oracle > Options and set "Add column alias list for View DDL" to "Always" or "Never". In case of "Auto", the SQL of the view will be described.
We'll fix the explain plan...
A direct update statement with a TLOBLocator will be more efficient, because it omits fetching the (huge) record first. But I would not have expected an "out of memory" error for a 100MB BLOB.
Thanks. There are indeed no significant differences between the 2 environments.
Can you do the DebugSQL test mentioned before with both 15.0 and 16.0, and send the 2 debug.txt files? Perhaps we can see some behavioral differences that might explain this.
In the log file we can see the an "ORA-03114: not connected to ORACLE" error after 73 seconds when the TEST_DEBUG table name is resolved. This indicates that the server process for the session may have crashed.
Maybe the difference between 15.0 and 16.0 is caused by a client configuration...
Can you let me know which SQL statement you tried to execute in the debug session? Is it the "select count(1) from test_debug"? I tested this (after removing the erroneous "begin" from the code) and it seems to work fine.
If so, then to obtain some more diagnostic information, can you modify...
Instead of using the export button, you can can right-click on the result set and select "Copy to Excel" from the popup menu. Now you can use the following comment directives:
-- Records=All
-- Tab=<Name>
-- Excel=<Filename>.xlsx
select p.taxyr, ...
This forces the SQL Window to fetch all rows...
There is no option to export query results in PL/SQL Developer from the command-line. When using a scheduled job in the Oracle Database, it is executed on the database server so there is no simple option to export the results to a file system in Excel format.
If you want to run a scheduled job...
You can place a PL/SQL Block (terminated with a slash) in the SQL Window to execute the procedure:
begin
package_name.do_something; -- a procedure to set some session-specific variables in the table api package
end;
/
select t.*, t.rowid from table_name t where ...
This cannot be restricted within PL/SQL Developer. You can of course create a logon trigger in a database to prevent users from logging in with specific programs.