Toad for Oracle - Beta Forum - Toad for Oracle Beta Program - Toad World

Toad for Oracle Beta Program Community

Toad for Oracle - Beta Forum

wickliffe.larry
Follow / 8 Feb 2017 at 8:46pm / Toad for Oracle Beta Program
Latest post by on 24 Feb 2017 at 8:35pm

Long term annoyence resurfaces

Expand content
Good Morning TOAD support Team, The right click menu in the Describe Windows loses export data if more than one table is selected; could this be improved to allow any number of tables and views;...
Good Morning TOAD support Team,

    The right click menu in the Describe Windows loses export data if more than one table is selected; could this be improved to allow any number of tables and views; and disappear when one of the objects is otherwise?

Larry
Answered 137 4 / Create an account to join the discussion.
Dennis Paulus

Beta Released (12.11.0.44)

Expand content
Beta Notes: Reports Manager Added support for multiple non-master-detail datasets. Details Here: http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2017/02/22/how-to-create...

 Beta Notes:

Reports Manager

Added support for multiple non-master-detail datasets.   Details Here:  http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2017/02/22/how-to-create-reports-in-toad-for-oracle-with-multiple-non-related-datasets

28 0 / Create an account to join the discussion.
kornelis.abe
Follow / 8 Feb 2017 at 2:20pm / Toad for Oracle Beta Program
Latest post by on 23 Feb 2017 at 8:30am

formatter puts as clause on a separate line

Expand content
All, I'm on Toad 12.11.0.37. I've noticed some changes in the formatter: - it puts AS clauses on a separate line - in parameter lists, it puts the parameter name and the parameter values on...

All,

I'm on Toad 12.11.0.37.

I've noticed some changes in the formatter:
- it puts AS clauses on a separate line
- in parameter lists, it puts the parameter name and the parameter values on separate lines

I find the new way of formatting undesirable (too many lines, reduces overview of the code)
I have searched for a formatting option to influence this behavior, but failed to locate
any such parameter. What have I missed?

Abe Kornelis
==========

Sample query showing all AS clauses on a separate line:
insert /*+append */
      into stock_stats.sold_quantities_base_stock
  select   partno /* generate one row for each part - per Country-Group */
         , sales_type
         , replacement_code
         , include_country
         , include_group
         , main_compno
             as compno_wrh
         , main_compno
             as compno_cus
         , group_compno
             as compno_group
         , redundancy_code
         , sum(tot_qty_economical)
             as qty_on_stock_economical
         , sum(tot_qty_physical)
             as qty_on_stock_physical
         , round(sum(avg_qty_1yr), 2)
             as avg_qty_1yr /* Add average stock quantity of all countries to obtain main-country's total */
         , round(sum(avg_qty_2yr), 2)
             as avg_qty_2yr /* Add average for each country to obtain country-group's total */
         , round(sum(avg_amt_1yr), 2)
             as avg_amt_1yr
         , round(sum(avg_amt_2yr), 2)
             as avg_amt_2yr
         , round(sum(avg_qty_1yr_economical), 2)
             as avg_qty_on_stock_1yr_econ
         , round(sum(avg_qty_1yr_physical), 2)
             as avg_qty_on_stock_1yr_phys
         , round(sum(avg_qty_2yr_economical), 2)
             as avg_qty_on_stock_2yr_econ
         , round(sum(avg_qty_2yr_physical), 2)
             as avg_qty_on_stock_2yr_phys
         , round(sum(avg_amt_1yr_economical), 2)
             as avg_amt_on_stock_1yr_econ
         , round(sum(avg_amt_1yr_physical), 2)
             as avg_amt_on_stock_1yr_phys
         , round(sum(avg_amt_2yr_economical), 2)
             as avg_amt_on_stock_2yr_econ
         , round(sum(avg_amt_2yr_physical), 2)
             as avg_amt_on_stock_2yr_phys
         , case
             when sum(tot_qty_physical) = 0 then round(sum(total_prlcw) / sum(prlcw_count), 5) /* default to unweighted average */
             else round(sum(total_prlcw) / sum(tot_qty_physical), 5) /* Weighted average according to stock level */
           end
             as avg_prlcw
         , sum(tot_amt_economical)
             as amt_on_stock_economical
         , sum(tot_amt_physical)
             as amt_on_stock_physical
         , sum(orderlines)
             as orderlines
         , case
             when min(mon_created) is null then p_earliest_period -- for missing connections, assume connection has existed since OMS started
             else min(mon_created)
           end
             as mon_created
         , current_date
             as date_inserted
         , null
             as date_updated
         , mon_code
  from     (select   ssd.partno /* here we generate one row for each part - per Legal Entity */
                   , ssd.sales_type
                   , ssd.replacement_code
                   , ssd.include_country
                   , ssd.include_group
                   , ssd.main_compno
                   , ssd.group_compno
                   , ssd.redundancy_code
                   , sum(case /* calculate total only for data for current month */
                           when ssd.mon_code = 100 * p_year + p_month then ssd.qty_economical
                           else 0
                         end
                        )
                       as tot_qty_economical
                   , sum(case /* calculate total only for data for current month */
                           when ssd.mon_code = 100 * p_year + p_month then ssd.qty_physical
                           else 0
                         end
                        )
                       as tot_qty_physical
                   /************************************************************************************************************************************/
                   /* TODO: this column could be either removed or kept for backward compatibility; to be superceeded by column AVG_QTY_1YR_PHYSICAL */
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.qty_physical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_qty_1yr
                   /************************************************************************************************************************************/
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.qty_physical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_qty_1yr_physical
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.qty_economical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_qty_1yr_economical
                   /************************************************************************************************************************************/
                   /* TODO: this column could be either removed or kept for backward compatibility; to be superceeded by column AVG_QTY_2YR_PHYSICAL */
                   , sum(ssd.qty_physical) / count(distinct ssd.mon_code)
                       as avg_qty_2yr /* Calculate average over last 24 months */
                   /************************************************************************************************************************************/
                   , sum(ssd.qty_physical) / count(distinct ssd.mon_code)
                       as avg_qty_2yr_physical
                   , sum(ssd.qty_economical) / count(distinct ssd.mon_code)
                       as avg_qty_2yr_economical
                   /************************************************************************************************************************************/
                   /* TODO: this column could be either removed or kept for backward compatibility; to be superceeded by column AVG_QTY_2YR_PHYSICAL */
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.stock_value_physical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock-value */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_amt_1yr
                   /************************************************************************************************************************************/
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.stock_value_physical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock-value */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_amt_1yr_physical
                   ,   sum(case /* Calculate average over last 12 months */
                             when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.stock_value_economical
                             else null
                           end
                          )
                     / count(distinct case /* Count months with stock-value */
                                        when ssd.mon_code > 100 * (p_year - 1) + p_month then ssd.mon_code
                                        else null
                                      end
                            )
                       as avg_amt_1yr_economical
                   /************************************************************************************************************************************/
                   /* TODO: this column could be either removed or kept for backward compatibility; to be superceeded by column AVG_QTY_2YR_PHYSICAL */
                   , sum(ssd.stock_value_physical) / count(distinct ssd.mon_code)
                       as avg_amt_2yr /* Calculate average over last 24 months */
                   /************************************************************************************************************************************/
                   , sum(ssd.stock_value_physical) / count(distinct ssd.mon_code)
                       as avg_amt_2yr_physical
                   , sum(ssd.stock_value_economical) / count(distinct ssd.mon_code)
                       as avg_amt_2yr_economical
                   , sum(case /* calculate total only for data for current month */
                           when ssd.mon_code = 100 * p_year + p_month then ssd.stock_value_economical
                           else 0
                         end
                        )
                       as tot_amt_economical
                   , sum(case /* calculate total only for data for current month */
                           when ssd.mon_code = 100 * p_year + p_month then ssd.stock_value_physical
                           else 0
                         end
                        )
                       as tot_amt_physical
                   , sum(case /* calculate total only for data for current month */
                           when ssd.mon_code = 100 * p_year + p_month then 1
                           else 0
                         end
                        )
                       as orderlines
                   , sum(case /* Calculate total prlcw only for current month */
                           when ssd.mon_code = 100 * p_year + p_month
                           then
                             case
                               when qty_physical = 0 then ext_prlcw
                               else ext_prlcw * qty_physical
                             end
                           else
                             0
                         end
                        )
                       as total_prlcw
                   , sum(case /* Count nr of prlcw values */
                           when ssd.mon_code = 100 * p_year + p_month then 1
                           else 0
                         end
                        )
                       as prlcw_count
                   , coalesce(min(ssd.mon_created_main), min(ssd.mon_created))
                       as mon_created -- use main creation date if present
                   , max(ssd.mon_code)
                       as mon_code
            from     (select /*+ use_hash(sbf) */
                            case /* here we generate individual value rows, and their replacements when applicable */
                               when cm.code_value = 'N' then psb.partno
                               when cm.code_value = 'R' then sqr.final_replacement
                               else null
                             end
                               as partno
                           , 'V'
                               as sales_type
                           , cm.code_value
                               as replacement_code
                           , case
                               when wrh.stockno is null then 'N' -- ignore non-existing warehouses
                               when psb.mon_code between wrh.mon_code_start and wrh.mon_code_end then 'Y' -- warehouse is relevant
                               else 'N' -- warehouse currently irrelevant
                             end
                               as include_country
                           , /* Except all non-group sales from Group categorization and Group totals */
                            case
                               when cmp.group_compno is null then 'N' -- Some companies are not tied to a group (Russia, Poland)
                               when wrh.stockno is null then 'N' -- ignore non-existing warehouses
                               when psb.mon_code between wrh.mon_code_start and wrh.mon_code_end then 'Y' -- warehouse is relevant
                               else 'N' -- warehouse currently irrelevant
                             end
                               as include_group
                           , wrh.main_compno
                           , coalesce(cmp.group_compno, -1)
                               as group_compno
                           , 'N'
                               as redundancy_code
                           , case -- quantity is physical stock level if available, econ
                               when psb.qtytot > 0 then psb.qtytot
                               else 0
                             end
                               as qty_economical
                           , case -- quantity is physical stock level if available, econ
                               when psb.physical_stock > 0 then psb.physical_stock
                               when psb.qtytot > 0 then psb.qtytot
                               else 0
                             end
                               as qty_physical
                           , case
                               when psb.qtytot > 0 then psb.lcwtot
                               else /* no valid quantity assume quantity and value to be zero */
                                   0
                             end
                               as stock_value_economical
                           , case -- physical stock value (if unavailable) defaults to economical stock level
                               when     psb.physical_stock > 0
                                    and psb.prlcw > 0
                               then
                                 psb.physical_stock * psb.prlcw
                               when psb.qtytot > 0
                               then
                                 psb.lcwtot -- default to economical value if available
                               else /* no valid data assume quantity and value to be zero */
                                 0
                             end
                               as stock_value_physical
                           , coalesce(sbf.stock_value_eur, 0)
                               as stock_value_eur
                           , case
                               when psb.prlcw is null then 0
                               when psb.prlcw < 0 then 0
                               else psb.prlcw
                             end
                               as ext_prlcw
                           , case
                               when psb.create_mon is null then sbf.mon_code -- null if row in stock_base_fct not present
                               when sbf.mon_code is null then psb.create_mon
                               else least(psb.create_mon, sbf.mon_code)
                             end
                               as mon_created
                           , case
                               when psb.stockno = cmp.default_stockno
                               then
                                 case
                                   when psb.create_mon is null then sbf.mon_code -- null if row in stock_base_fct not present
                                   when sbf.mon_code is null then psb.create_mon
                                   else least(psb.create_mon, sbf.mon_code)
                                 end
                             end
                               as mon_created_main
                           , psb.mon_code
                      from   stock_stats.psbase psb
                             left outer join stock_stats.warehouses wrh
                               on     wrh.mon_code = psb.mon_code
                                  and wrh.stockno = psb.stockno
                             left outer join stock_stats.companies cmp -- retrieve company row to check whether stockno is default stockno
                               on     cmp.mon_code = 100 * p_year + p_month
                                  and cmp.compno = wrh.compno
                             left outer join stock_stats.codes_monthly cm /* Create two rows for each sale with and without replacement part */
                               on     cm.mon_code = psb.mon_code
                                  and cm.col_name = 'REPLACEMENTS'
                             left outer join stock_stats.sold_quantities_repl sqr
                               on     sqr.partno = psb.partno
                                  and sqr.compno = wrh.compno
                             left outer join stock_stats.stockbase sbf -- stockbase fact table
                               on     sbf.mon_code = psb.mon_code
                                  and sbf.stockno = psb.stockno
                                  and sbf.partno = psb.partno
                                  /* following two predicates help the optimizer to skip unneeded partitions */
                                  and sbf.mon_code > 100 * (p_year - 2) + p_month /* Select data for last 24 months */
                                  and sbf.mon_code <= 100 * p_year + p_month
                      where      psb.mon_code > 100 * (p_year - 2) + p_month /* Select data for last 24 months */
                             and psb.mon_code <= 100 * p_year + p_month
                             and psb.mon_code between wrh.mon_code_start and wrh.mon_code_end /* Skip irrelevant warehouses */
                             /* Always select the 'No replacement' version, select 'Replacement' line also if replacement available */
                             and (   cm.code_value = 'N' /* normal, not replacement */
                                  or (    cm.code_value = 'R' /* Replacement line */
                                      and sqr.final_replacement is not null))) ssd -- StockStats Data
            group by ssd.partno /* Group data at part-per-LE level */
                   , ssd.sales_type
                   , ssd.replacement_code
                   , ssd.include_country
                   , ssd.include_group
                   , ssd.main_compno
                   , ssd.group_compno
                   , ssd.redundancy_code
            having   max(ssd.mon_code) = 100 * p_year + p_month /* retain only totals for current month */
                                                               )
  group by partno /* Group data at part-per-LE level */
         , sales_type
         , replacement_code
         , include_country
         , include_group
         , main_compno
         , group_compno
         , redundancy_code
         , mon_code;

151 4 / Create an account to join the discussion.
jcummings
Follow / 21 Feb 2017 at 6:54pm / Toad for Oracle Beta Program
Latest post by on 21 Feb 2017 at 7:42pm

Access Violation

Expand content
I received this error when trying to open a new editor window with version 12.11.0.42 today: Access violation at address 0000000008F8552B in module 'Toad.exe'. Read of address 000000000000000A...

I received this error when trying to open a new editor window with version 12.11.0.42 today: Access violation at address 0000000008F8552B in module 'Toad.exe'. Read of address 000000000000000A.

I have the full error log that I can send if it is needed.

56 2 / Create an account to join the discussion.
Rich J.
Follow / 21 Feb 2017 at 5:00pm / Toad for Oracle Beta Program

OUTER JOIN causes syntax hit

Expand content
12.11.0.43 This statement causes a syntax hit on OUTER: SELECT R1TYFL, R1OCDE, R1RQBT, R1RQSQ, R2PTSK, R1DOCO, R1DCTO, R1KCOO, R2LNID, R1LNID, R1PSTB, R1RCDJ, R1ITM, R1MCU FROM PRODDTA.F4600 OUTER...

12.11.0.43


This statement causes a syntax hit on OUTER:

SELECT R1TYFL, R1OCDE, R1RQBT, R1RQSQ, R2PTSK, R1DOCO, R1DCTO, R1KCOO, R2LNID, R1LNID,
R1PSTB, R1RCDJ, R1ITM, R1MCU
FROM PRODDTA.F4600
OUTER JOIN PRODDTA.F4611
ON R1TYFL=R2TYFL AND R1OCDE=R2OCDE AND R1RQBT=R2RQBT AND R1RQSQ=R2RQSQ;

Although this is the exact script that Toad generated, and it works just fine.

Thanks!
Rich

32 0 / Create an account to join the discussion.
d.reddin
Follow / 17 Feb 2017 at 9:41am / Toad for Oracle Beta Program
Latest post by on 21 Feb 2017 at 8:40am

Comments missing in TC Objects Overview

Expand content
I recognized the following issue: In the "Show Team Coding Objects" window the symbols for existing comments on object are greyed out. In the "Transaction History" part the comments...

I recognized the following issue:

In the "Show Team Coding Objects" window the symbols for existing comments on object are greyed out. In the "Transaction History" part the comments are active and on click a window with correct comment appears. Why are the comments in main window inactive? Wouldn't it be better to show the comment (if too large first 30 letters) instead of a symbol?

Best regards

Dennis Reddin

Answered 52 2 / Create an account to join the discussion.
Dennis Paulus

Beta Released (12.11.0.43)

Expand content
Beta Notes Code Analysis Rule 2131 Rule 2131 ("Use CONSTANT keyword wherever possible.") : The suggested hit on line 2 in the example didn't raise due to the actual example code. ...
Beta Notes
Code Analysis Rule 2131

Rule 2131 ("Use CONSTANT keyword wherever possible.") : The suggested hit on line 2 in the example didn't raise due to the actual example code.

Code Analysis Rule 2757

Rule 2757 ("A CASE expression should have an ELSE clause to avoid it returning NULL") : Topic text was missing.

Formatter

NOTE: Oracle formatter output may change for a couple of statements due to ongoing work on 12c R2 formatting.

Formatter layout

SELECT Statement: Inconsistent indenting with comment or hint. For instance, line #2 of the following example was shifted one position to the left:

SELECT /*+ hint */
      'abcdef',
       'bsdfjsdlafkjflasfkjdslffjlsdja',
       'xsalkfjsdalfjdaslfjdls',
       'yasjkdfsdjfl',
       'zklfjdslfjdaslfsajdfl'
  FROM dual;

Oracle 12c R2 Support

Support for all new ALTER and CREATE statements.

45 0 / Create an account to join the discussion.
droeschley_109
Follow / 17 Feb 2017 at 10:09pm / Toad for Oracle Beta Program
Latest post by on 20 Feb 2017 at 1:51pm

SB - create script for multiple objects pops up "freeware"...

Expand content
I get this popup when I select multiple tables and select Create Script. Once I click OK, the script contains all objects. Toad_mutli_window.docx

I get this popup when I select multiple tables and select Create Script.  Once I click OK, the script contains all objects.

Toad_mutli_window.docx

52 1 / Create an account to join the discussion.
kornelis.abe

Damaged messages in script output window

Expand content
All, I'm currently on Toad 12.11.0.42 Messages in the script output window appear to be damaged: For example, the space between create and index has disappeared,? as it has between alter and...

All,

I'm currently on Toad 12.11.0.42

Messages in the script output window appear to be damaged:


For example, the space between create and index has disappeared,?
as it has between alter and table.

A bigger problem are the lines with just a number and a period.
Are they lines inserted? Deleted? Updated? There's no way to tell.

Could you please fix this?

Thanks in advance,
Abe Kornelis
==========

29 0 / Create an account to join the discussion.
droeschley_109
Follow / 21 Nov 2016 at 5:26pm / Toad for Oracle Beta Program
Latest post by on 17 Feb 2017 at 6:53pm

Compare files - jump to previous/next difference should jump to next...

Expand content
If I've added a whole section of code, most compare utilities I've used will jump to the next group of differences, rather than stepping through each line in the section of added code.. At least...

If I've added a whole section of code, most compare utilities I've used will jump to the next group of differences, rather than stepping through each line in the section of added code..

At least it should be an option, if someone really finds the current behavior useful.

251 6 / Create an account to join the discussion.
Peter Lang
Follow / 13 Feb 2017 at 9:00am / Toad for Oracle Beta Program
Latest post by on 17 Feb 2017 at 4:21pm

Open sql file from explorer

Expand content
I am trying to open one or more files from the explorer with TOAD and I would like this to work the same way it does when dragging the file(s) into an editor. Differences I experience: Every file...

I am trying to open one or more files from the explorer with TOAD and I would like this to work the same way it does when dragging the file(s) into an editor.

Differences I experience:

  • Every file opens a new Editor window instead of a new tab. This is not useful and also takes very long. "Use single Editor instance for PL/SQL if possible" is set in configuration but does not seem to make a difference
  • The tab header does not contain the real file-name, but converts it to UPPERCASE.

Can you reproduce this? Is there any other option that I missed?

Unanswered 105 4 / Create an account to join the discussion.
kornelis.abe
Follow / 17 Feb 2017 at 7:37am / Toad for Oracle Beta Program
Latest post by on 17 Feb 2017 at 3:13pm

Inconsistent formatting of comment blocks

Expand content
All, I'm currently on Toad 12.11.0.42. While formatting a long script, I noticed some inconsistencies in the formatted code. Please see attachment for details. Issue #1: in between two successive...

All,

I'm currently on Toad 12.11.0.42.

While formatting a long script, I noticed some inconsistencies in the formatted code.
Please see attachment for details.

Issue #1: in between two successive comment blocks, a blank separator line is inserted
               on line 5, but not on lines 126, 300, etc. Only the first double block gets an additional blank line.

Issue #2: between a block of code and the next comment block a blank line is normally inserted
                but not on all occasions. E.g. line 6057/6058 are not separated, whereas 6031/6033 have
                been separated by a single intervening blank line.

Issue #3: An invocation of another script followed by a double-dash comment has the two dashes
                separated by a single intervening space. See e.g. line 32.

Could you please fix these issues?

Thanks in advance,
Abe Kornelis
==========

20170217 $install_tables.sql

50 2 / Create an account to join the discussion.
Dennis Paulus
Follow / 16 Feb 2017 at 3:50pm / Toad for Oracle Beta Program
Latest post by on 17 Feb 2017 at 1:56pm

Beta Released (12.11.0.42)

Expand content
Beta Notes Compare and Sync Multiple Tables Details here: http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2017/02/14/compare-and-sync-multiple-tables-with-toad
Beta Notes
Compare and Sync Multiple Tables

Details here: http://www.toadworld.com/products/toad-for-oracle/b/weblog/archive/2017/02/14/compare-and-sync-multiple-tables-with-toad

71 3 / Create an account to join the discussion.
herald.ten.dam
Follow / 15 Feb 2017 at 9:58am / Toad for Oracle Beta Program
Latest post by on 16 Feb 2017 at 12:26am

Git and the .exe

Expand content
Hi, we have several developers which use GIT but are not administrator of Teamcoding. If there is a new PC/developer or even a new TeamCoding Project every time the git.exe needs to be defined by the...

Hi,

we have several developers which use GIT but are not administrator of Teamcoding. If there is a new PC/developer or even a new TeamCoding Project every time the git.exe needs to be defined by the developer, but he is not allowed to do on his PC because the setting of the executable is only allowed to the administrator. So a administrator of teamcoding needs to be logging in to the developers PC for setting the exe. Is it possible to allow this setting for every user in TeamCoding, or even move this to the user settings or even higher level in de executables in TOAD?

Herald

37 2 / Create an account to join the discussion.
Dennis Paulus
Follow / 13 Feb 2017 at 6:11pm / Toad for Oracle Beta Program
Latest post by on 14 Feb 2017 at 5:44pm

Beta Released (12.11.0.40)

Expand content
Internal Bug Fixes

Internal Bug Fixes

58 1 / Create an account to join the discussion.
Peter Lang
Follow / 13 Feb 2017 at 2:52pm / Toad for Oracle Beta Program
Latest post by on 13 Feb 2017 at 3:24pm

Crash when closing

Expand content
This has now happened several times when closing TOAD: Application: ------------------------------------------------------------- 1.1 Start Date : Mon, 13 Feb 2017 13:12:24 +0100 1.2 Name/Description...

This has now happened several times when closing TOAD:


Application:
-------------------------------------------------------------
  1.1 Start Date      : Mon, 13 Feb 2017 13:12:24 +0100
  1.2 Name/Description: Toad.exe - (Toad™ for Oracle®)
  1.3 Version Number  : 12.11.0.39
  1.4 Parameters      :
  1.6 Up Time         : 2 hour(s), 31 minute(s), 13 second(s)

Exception:
-----------------------------------------------------------------------------------------------------------------------------
  2.1 Date       : Mon, 13 Feb 2017 15:43:37 +0100
  2.2 Address    : 00000000046E809F
  2.3 Module Name: Toad.exe - (Toad™ for Oracle®)
  2.5 Type       : EUseAfterFreeError
  2.6 Message    : Application made attempt to call method of already deleted object: $0000000034B8CDB0 OBJECT [?] 144 bytes.
  2.7 ID         : 2C220000
  2.8 Count      : 1
  2.11 Sent      : 0


Call Stack Information:
---------------------------------------------------------------------------------------------------------------------------------------------------------------
|Methods |Details|Stack           |Address         |Module      |Offset          |Unit                 |Class                        |Procedure/Method   |Line|
---------------------------------------------------------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=11540; Parent=0; Priority=-2                                                                                                           |
|Class=; Name=MAIN                                                                                                                                            |
|DeadLock=0; Wait Chain=                                                                                                                                      |
|Comment=                                                                                                                                                     |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
|00000040|03     |000000000042FC08|0000000006F1A985|Toad.exe    |0000000002D8A985|tdBookmarkPersistence|TtdBookmarkSourceStorageItems|RebuildIndexes     |    |
|00000040|03     |000000000042FC98|0000000006F1A30B|Toad.exe    |0000000002D8A30B|tdBookmarkPersistence|TtdBookmarkSourceStorageItems|Notify             |    |
|00000040|03     |000000000042FCD8|00000000042EE6A9|Toad.exe    |000000000015E6A9|System.Classes       |TList                        |SetCount           |    |
|00000040|03     |000000000042FD28|00000000042EDEEE|Toad.exe    |000000000015DEEE|System.Classes       |TList                        |Clear              |    |
|00000040|03     |000000000042FD58|00000000042EDE5E|Toad.exe    |000000000015DE5E|System.Classes       |TList                        |Destroy            |    |
|00000040|03     |000000000042FD98|0000000006F1ADA2|Toad.exe    |0000000002D8ADA2|tdBookmarkPersistence|TtdBookmarkSourceStorageItems|Destroy            |    |
|00000040|03     |000000000042FDD8|00000000041A02A5|Toad.exe    |00000000000102A5|System               |TObject                      |Free               |    |
|00000040|03     |000000000042FE08|0000000006F1AF4B|Toad.exe    |0000000002D8AF4B|tdBookmarkPersistence|                             |Finalization       |    |
|00000040|03     |000000000042FE38|00000000041A29F7|Toad.exe    |00000000000129F7|System               |                             |FinalizeUnits      |    |
|00000040|03     |000000000042FE98|00000000041A31A8|Toad.exe    |00000000000131A8|System               |                             |_Halt0             |    |
|00000040|03     |000000000042FED8|000000000973FB84|Toad.exe    |00000000055AFB84|Toad                 |                             |Initialization     |    |
|00000040|03     |000000000042FF58|0000000077B859CB|kernel32.dll|00000000000159CB|kernel32             |                             |BaseThreadInitThunk|    |
---------------------------------------------------------------------------------------------------------------------------------------------------------------

Unanswered 37 1 / Create an account to join the discussion.
kornelis.abe
Follow / 10 Feb 2017 at 3:02pm / Toad for Oracle Beta Program
Latest post by on 13 Feb 2017 at 8:00am

impractical alignment of parameter values in list of named parame...

Expand content
All, I'm on Toad 12.11.0.39. The formatter seems to be trying to align the => signs in my list of named parameters. But it is breaking lines when it should not. E.g. it breaks p_debug =>...

All,

I'm on Toad 12.11.0.39.

The formatter seems to be trying to align the => signs in my list of named parameters.
But it is breaking lines when it should not.
E.g. it breaks p_debug => 'Nodebug'  into two separate code lines :-(

This is the sample query:

select   category_old as category_economical
       , category_new as category_physical
       , count(*) as aantal
from     (select r.partno
               , r.compno
               , substr(r.category_with_repl_reason, 1, 1)
                   as category_new
               , substr(stock_stats.summarize.determine_category( /* turnover = sales (of parts+kits) - returns, include turnover of replaced parts */
                          p_partno =>
                            r.partno
                        , p_synonym_of =>
                            r.synonym_of
                        , p_value_lines =>
                            coalesce(r.value_lines, 0) + coalesce(r.repl_value_lines, 0)
                        , p_qty_on_stock =>
                            coalesce(r.qty_on_stock_economical, 0) + coalesce(r.repl_qty_on_stock_economical, 0)
                        , p_turnover_12m =>
                              coalesce(r.qty_sold_1yr, 0)
                            + coalesce(r.qty_uninvoiced, 0)
                            - coalesce(r.qty_returned_1yr, 0)
                            - coalesce(r.qty_uninvoiced_returns, 0)
                            + coalesce(r.repl_qty_sold_1yr, 0)
                            + coalesce(r.repl_qty_uninvoiced, 0)
                            - coalesce(r.repl_qty_returned_1yr, 0)
                            - coalesce(r.repl_qty_uninvoiced_returns, 0)
                        , p_turnover_24m =>
                              coalesce(r.qty_sold_2yr, 0)
                            + coalesce(r.qty_uninvoiced, 0)
                            - coalesce(r.qty_returned_2yr, 0)
                            - coalesce(r.qty_uninvoiced_returns, 0)
                            + coalesce(r.repl_qty_sold_2yr, 0)
                            + coalesce(r.repl_qty_uninvoiced, 0)
                            - coalesce(r.repl_qty_returned_2yr, 0)
                            - coalesce(r.repl_qty_uninvoiced_returns, 0)
                        , p_qty_reserved =>
                            coalesce(r.qty_reserved, 0) + coalesce(r.repl_qty_reserved, 0)
                        , p_create_mon =>
                            case
                              when r.linetype = 'G'
                              then
                                coalesce(r.created_global, 200301)
                              else
                                coalesce(r.created_psbase
                                       , r.created_local
                                       , r.created_global
                                       , 200301
                                        )
                            end
                        , p_current_period =>
                            r.mon_code
                        , p_debug =>
                            'Nodebug'
                        )
                      , 1
                      , 1
                       )
                   as category_old
          from   results r
          where      r.mon_code = 201612
                 and r.linetype = 'D'
                 and r.redundancy_code = 'N'
                 and r.compno > 0)
group by category_old, category_new
order by category_old, category_new;

As you can see, some parameter values are calculated using a lengthy expression.
Those are formatted okay, but the short ones that should fit on a single code line
are broken into two lines as well.

I would like the => symbols to be aligned, but rather not this way!

Kind regards,
Abe Kornelis.
==========

62 4 / Create an account to join the discussion.
kornelis.abe
Follow / 7 Feb 2017 at 9:23am / Toad for Oracle Beta Program
Latest post by on 10 Feb 2017 at 3:35pm

AV error at 0 when selecting an XML column

Expand content
All, I'm on Toad 12.11.0.37 When selecting * from a table containing an XML column I get an AV at address 0: As far as I can see the issue is caused by the XML column. We've seen a comparable...

All,

I'm on Toad 12.11.0.37

When selecting * from a table containing an XML column I get an AV at address 0:


As far as I can see the issue is caused by the XML column.

We've seen a comparable issue in the past.
I thought the issue had been resolved.
Am I mistaken?

Kind regards,
Abe Kornelis
==========

65 4 / Create an account to join the discussion.
Dennis Paulus

Beta Released (12.11.0.39)

Expand content
Beta Notes: Formatter Layout Aligning right hand side of relational expression to left hand side, for better readability. Both LHS and RHS are considered to be at a same level, not subordinate...

 Beta Notes:

Formatter Layout

Aligning right hand side of relational expression to left hand side, for better readability.
Both LHS and RHS are considered to be at a same level, not subordinate, so indenting the RHS it not desired.
Examples:

  IF INSTR (p_version,
            '.') >
     0
  THEN
  ...

  IF isnull(
        b.id),
        1000,
        b.id) =
     c.id
  THEN
  ...

Formatter Layout

Aliases in select lists now wrapped onto on a new line when right alignment for all is not possible.
This should improve readability by avoiding scattering aliases between left to right.
Examples (before -> after):

     SELECT /*+ ALL_ROWS */
           so_custid,
            ship_zip,
            SUM (DECODE (bought_flag, 'Y', DECODE (status, 40, 0, 1), 0))
               bought,
            SUM (DECODE (bought_flag, 'Y', 1, 0))
               bought_count,
            SUM (
               DECODE (bought_flag,
                       'Y', DECODE (lost_flag, 'Y', DECODE (GREATEST (bought_ts, lost_ts), bought_ts, 1, 0), 0),
                       0))
               stolen_count
       FROM md_order_lines

Formatter Layout

Named parameters: On overflow the right side of the arrow is wrapped onto a new line.
Examples:

BEGIN
   IF LOWER (p_debug) = 'debug'
   THEN
      utl_krg.msg_log.log_debug_msg (
         p_caller    => g_my_schema || '.' || g_my_package || '.' || l_my_routine,
         p_msg_id    => g_my_msg_prefix || '9110D',
         p_message   => 'build_customer_msg returned ' || COALESCE (l_errmsg2, '<*Null>'));
   END IF;
END;

BEGIN
   IF LOWER (p_debug) = 'debug'
   THEN
      utl_krg.msg_log.log_debug_msg (
         p_caller =>
            g_my_schema || '.' || g_my_package || '.' || l_my_routine,
         p_msg_id =>
            g_my_msg_prefix || '9110D',
         p_message =>
            'build_customer_msg returned ' || COALESCE (l_errmsg2, '<*Null>'));
   END IF;
END;

BEGIN
   IF LOWER (p_debug) = 'debug'
   THEN
      utl_krg.msg_log.log_debug_msg (
         p_caller =>
               g_my_schema
            || '.'
            || g_my_package
            || '.'
            || l_my_routine,
         p_msg_id =>
               g_my_msg_prefix
            || '9110D',
         p_message =>
               'build_customer_msg returned '
            || COALESCE (
                  l_errmsg2,
                  '<*Null>'));
   END IF;
END;

User Settings

The default location for your user files has changed once more as part of the re-branding process, and should now be located back under "%AppData%/Quest Software".  As a result, you may need to recopy your user settings if they don't automatically come over.

56 0 / Create an account to join the discussion.
droeschley_109
Follow / 7 Feb 2017 at 9:46pm / Toad for Oracle Beta Program
Latest post by on 9 Feb 2017 at 12:50pm

Data Grid - custom filter length restriction should be relaxed a ...

Expand content
I have a VARCHAR2(4) column, I want to filter using LIKE '%BCD%' to match values that start or end with BCD. Filter only allows 4 characters. I know I can use an additional OR filter but is there...

I have a VARCHAR2(4) column,  I want to filter using LIKE '%BCD%'  to match values that start or end with BCD.  Filter only allows 4 characters.  I know I can use an additional OR filter but is there any reason not to allow 5 characters?  At the moment I can't think of any scenario when I'd need to enter more than max_length+1 characters.

49 1 / Create an account to join the discussion.