Hi,
PLSql formatter seems lost when using new syntax (since Oracle 18c) for initializing records and arrays like this:
DECLARE
TYPE ints_t IS TABLE OF INTEGER
INDEX BY PLS_INTEGER;
l_ints ints_t := ints_t (1 => 55, 2 => 555, 3 => 5555);
BEGIN
FOR indx IN 1 .. l_ints.COUNT
LOOP
DBMS_OUTPUT.put_line (l_ints (indx));
END LOOP;
END;
/
Regards.
Claude.
Support for this syntax (1 => 55, 2 => 555, etc.) our side is missing indeed.
Thanks for letting us know.
Andre
Hi,
thank you for your reply,
just another example:
DECLARE
TYPE species_rt IS RECORD (
species_name VARCHAR2 (100),
habitat_type VARCHAR2 (100),
surviving_population INTEGER);
l_elephant species_rt
:= species_rt (species_name => 'Elephant',
surviving_population => '10000',
habitat_type => 'Savannah');
BEGIN
DBMS_OUTPUT.put_line ('Species: ' || l_elephant.species_name);
END;
/
regards.
Claude
Hi Claude,
Hmm, your last example seems to parse and format fine in Toad 14.0.75.662, which has the same QP5 component 5.362 as yours. Are you sure there's a problem? If so then can you please provide details?
Thanks,
Andre
Hi,
Yes you were right, this on parses correctly.
but these ones not:
DECLARE
TYPE by_string_t IS TABLE OF INTEGER
INDEX BY VARCHAR2 (100);
l_stuff by_string_t := by_string_t ('Steven' => 55, 'Loey' => 555, 'Juna' => 5555);
l_index VARCHAR2 (100) := l_stuff.FIRST;
BEGIN
DBMS_OUTPUT.put_line (l_stuff.COUNT);
WHILE l_index IS NOT NULL LOOP
DBMS_OUTPUT.put_line (l_index || ' => ' || l_stuff (l_index));
l_index := l_stuff.NEXT (l_index);
END LOOP;
END;
/
DECLARE
TYPE by_string_t IS TABLE OF INTEGER
INDEX BY VARCHAR2 (100);
l_stuff by_string_t := by_string_t (UPPER ('Grandpa Steven') => 55, 'Loey' || 'Juna' => 555, SUBSTR ('Happy Family', 7) => 5555);
l_index VARCHAR2 (100) := l_stuff.FIRST;
BEGIN
DBMS_OUTPUT.put_line (l_stuff.COUNT);
WHILE l_index IS NOT NULL LOOP
DBMS_OUTPUT.put_line (l_index || ' => ' || l_stuff (l_index));
l_index := l_stuff.NEXT (l_index);
END LOOP;
END;
/
Best regards.
Claude.
That's of a same kind as the first snippet indeed.
Thanks for the examples, we've queued it. (QP-3755)
Thanks,
Andre