 |
SoftTree Technologies
Technical Support Forums
|
|
Author |
Message |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
Trouble with PL/SQL Developer Code Assistant |
|
Hello!
Thank you for great soft! But there is one trouble with PL/SQl Developer integration.
When SQL Assistant is turned on and SQL Assistance functionality is turned off there is trouble with PL/SQL Developer integrated Code Assistant.
Step By step:
1. We enter something in SQL Editor
2. PL/Sql developer Code Assistant menu pops up
3. PL/Sql developer automatically selects first item in the list
4. We press enter key
5. After that we see transition to the next string and carriage return WITHOUT desired replacement by Code Assistant! I think that "enter" key is halted by SQL Assistant
SQL Assistant version: 4.0.34
PL/SQL-Developer: 7.1.5.1398
Thanks!
|
|
Fri Nov 28, 2008 5:43 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Hi,
I'm sorry, I'm a bit confused by your references. When you say "SQL Assistance functionality is turned off" and "PL/Sql developer Code Assistant menu pops up" do you refer to PL/SQL Developer's functionality or SQL Assistant's functionality?
If "SQL Assistance functionality is turned off" how could "PL/Sql developer Code Assistant menu pops up" ? It is either turned off or not. If it is not, you should turn it off to avoid conflicts with SQL Assistant popups and menus. If indeed it is turned off, how then a menu appear which is supposed to be turned off?
Thanks.
|
|
Fri Nov 28, 2008 10:08 am |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
When you say "SQL Assistance functionality is turned off" and "PL/Sql developer Code Assistant menu pops up" do you refer to PL/SQL Developer's functionality or SQL Assistant's functionality?
I refer to PL/SQL Developer functionality (Code Assistant). I want use another SQL Assistant functionality (except SQL Assistance) in a tandem with PL/SQL Developer. Therefore SQL Assistant SQL Assistance functionality is turned off and PL/SQL Developer Code Assistant is turned on. But in this case SQL Assistant in conflict with PL/Sql developer as I wrote in my previous message. (there was no such problem in version 3.5)
Thanks
|
|
Fri Nov 28, 2008 10:24 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Sorry, I still don't understand what conflict you are talking about. You say "SQL Assistant SQL Assistance functionality is turned off and PL/SQL Developer Code Assistant is turned on. But in this case SQL Assistant in conflict with PL/Sql developer"
What conflict are you talking about if it is turned off? If it is turned off, e.g. shutdown or suspended, it means the software is inactive and cannot interfere with PL/SQL Developer or anything else.
How do you turn it off? Please describe step-by-step how you turn it off.
Last edited by SysOp on Fri Nov 28, 2008 12:34 pm; edited 1 time in total |
|
Fri Nov 28, 2008 10:53 am |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
:)
"SQL AssistanT" (r) has spread functionality
1.SQL AssistanCe (it is turned off)
2.SQL Reference
3.Code Snippets
.....
Additionaly There are no Any SQL AssistanT key shotcuts maped to "enter" key in my current configuration....
|
|
Fri Nov 28, 2008 11:20 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
I'm now even more confused than in the beginning of this topic :)
How exactly do you turn it off? I need to know what you are doing in order to help you.
Thanks
|
|
Fri Nov 28, 2008 12:36 pm |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
May be some visualization will be useful ? :)

|
|
Fri Nov 28, 2008 12:45 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thank you. Now I understand what you talking about.
So basically you want to keep turn-off 4th generation SQL Intellisense provided by SQL Assistant and use 2nd generation SQL Intellisense provided by PL/SQL Developer while at the same time using SQL References and Code formatting features. I don't think you can do it exactly like that. You would need to turn off code formatting too, because SQL Assistant and Code formatting are inter-dependent. SQL Assistance is not just simple popups (as in PL/SQL Developer), it is a lot more than that including code reformatting, indenting, code snippets, smart undo, tabs replacement and a number of other features.
I also want to say that SQL Assistant v4.x packs a lot more features tied to "SQL Assistant" option than what was available in 3.x releases. In addition, SQL Assistant v4.1 provides several unique new features for Oracle such as suggestions for local variables, package variables, matching name highlighting, formatted programming code copying to clipboard, etc… and a number of other, none of which are available in PL/SQL Developer.
From my point of view choosing PL/SQL Developer's code assistance over SQL Assistant is like choosing an old car over brand shining Lexus.
Of course, this is your preference. You can choose whatever you want, but the current selection wouldn't work the way you expect it to work.
|
|
Fri Nov 28, 2008 1:45 pm |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
Thank you.
I think that posibilities of SQL Assistance are very great! Thank you for so fine software!
Why do I prefer to use Pl/SQL Developer Assistance functionality? First of all because I work with several Oracle databases and i need to reconnect frequently from one database to another. In case of SQL Assistant will be necessary to reconnect twice (PL/SQL Developer and SQL Assistant)
And several words in defence of PL/SQL Developer
Some chat of features:
 |
 |
Features "SQL Assistant" "PL/SQL Developer" Code Assistant
code reformatting Yes Yes, Simle (keywords case changing)
indenting Yes Yes (Rich capabilities in Procedural Editing )
code snippets yes It is possible with additional plugin or with SQL Assistant ;-)
smart undo yes no
tabs replacement yes yes
suggestions for local variables yes yes
suggestions for package variables yes yes
matching name highlighting yes yes
formatting programming code yes yes
...copying to clipboard
(what is the sense and the aim of it?) yes no |
There are much of another features of PL/SQL Developer editor. For example, drug and drop feature for objects with desirable SQL generating, code refactoring, code folding and so on.
I think that PL/SQL Developer car is not so bad car ;-)
Thank you!!!
|
|
Mon Dec 01, 2008 7:12 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
PL/SQL Developer is a very nice development system.
I only meant the SQL Intellisense part, to which I referred in the sentence comparing new car vs. old car. If you disable that particular feature, you can still enjoy everything else, including all the great editor features, drag-and-drop and other. And in that case you would not have keyboard-related conflicts.
Thank you.
|
|
Mon Dec 01, 2008 10:49 am |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
Thank you for your answers! :)
Additionally I found that SQL Assistant feature "Code Structure" doesn't correctly work with Oracle Package body. It shows only first procedure in package
Thanks!
|
|
Mon Dec 01, 2008 1:26 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Would you please provide a sample code to reproduce this issue? If this is a bug, we will gladly fix it, but we need to reproduce it first.
|
|
Mon Dec 01, 2008 1:32 pm |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
Yes, of course
You need to create simplest package
 |
 |
create or replace package test is
function test1(p_n
number) return varchar2;
function test2(p_n number) return varchar2;
end test;
create or replace package body test is
function test1(p_n number) return varchar2 is
begin
return(null);
end;
function test2(p_n number) return varchar2 is
begin
return(null);
end;
end test; |
As a result for package body we can see (only first function):
For package header (it is all right):
Additional error with toggle from package header view to package body view (video):
http://www.zshare.net/video/521588103ad768e6/
|
|
Tue Dec 02, 2008 2:13 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thanks! I will forward this issue to the development team for further investigation.
|
|
Tue Dec 02, 2008 2:20 pm |
|
 |
Albert
Joined: 25 Nov 2008 Posts: 12 Country: Russian Federation |
|
|
|
Hello!
Thank you for fixing error with package code structure!
Here you can see example of procedure for which a code structure is not showed
 |
 |
create or replace function arm_copy_entity_to_new (
pn_entity in entityclass.classified%type,
ps_new_entity_name in entityclass.label%type,
pn_new_entity_category in entityclass.doccategory%type default null)
return entityclass.classified%type
is
ln_new_entity entityclass.classified%type;
ln_new_entitystate entitystate.classified%type;
ln_new_entityoperation entityoperation.classified%type;
ln_counter pls_integer;
type tcorresponding_entitystates is record (
entitystate_old entitystate.classified%type,
entitystate_new entitystate.classified%type
);
type tcorresponding_entityst_array is table of tcorresponding_entitystates;
l_entitystates tcorresponding_entityst_array
:= tcorresponding_entityst_array
();
type tcorresponding_entityoper is record (
entityoper_old entityoperation.classified%type,
entityoper_new entityoperation.classified%type
);
type tcorresponding_entityop_array is table of tcorresponding_entityoper;
l_entityopers tcorresponding_entityop_array
:= tcorresponding_entityop_array
();
-- ln_new_entitymethod entitymethod.classified%type;
-- ln_new_entityattribute entityattribute.classified%type;
procedure p (
ps_msg in varchar2,
pb_test_not_zero boolean default false,
pb_test_only_one boolean default false)
is
begin
if sql%rowcount = 0 and nvl (pb_test_not_zero, false) then
arm_raise_error (p_msg => 'Can''t add record: ' || ps_msg, p_stack_depth => 2);
elsif nvl (pb_test_only_one, false) and sql%rowcount > 1 then
arm_raise_error (p_msg => ' Too much records: '
|| ps_msg
|| ':'
|| to_char (sql%rowcount),
p_stack_depth => 2);
else
dbms_output.put_line (ps_msg || ': added ' || to_char (sql%rowcount)
|| ' records');
end if;
end;
begin
select classified.nextval
into ln_new_entity
from dual;
insert into entityclass
(classified, code, label, description, parent, doccategory, subsystem,
isabstract, dictionary)
select ln_new_entity, /*'doctype' || to_char (ln_new_entity)*/
ps_new_entity_name, ps_new_entity_name, description, parent,
nvl (pn_new_entity_category, doccategory), subsystem, isabstract, dictionary
from entityclass
where classified = pn_entity;
dbms_output.put_line (a => ln_new_entity);
p (ps_msg => 'entityclass', pb_test_not_zero => true, pb_test_only_one => true);
insert into entityparent
(entity, parent, lev)
select ln_new_entity, parent, lev
from entityparent p
where p.entity = pn_entity;
p (ps_msg => 'entityparent', pb_test_not_zero => true);
insert into ro_preferences
(ro_classified, subjclass, parentclass, accmaskdeb, accmaskcred, currdeb,
currcred, prefpriority, sqlcond, ro, sysfilial)
select ro_classified.nextval, ln_new_entity, parentclass, accmaskdeb, accmaskcred,
currdeb, currcred, prefpriority, sqlcond, ro, sysfilial
from ro_preferences r
where r.subjclass = pn_entity
and r.sqlcond not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity);
p (ps_msg => 'ro_preferences', pb_test_not_zero => true);
insert into entityinheritveto
(entityclass, parentobject, vetoflag)
select ln_new_entity, parentobject, vetoflag
from entityinheritveto v
where v.entityclass = pn_entity;
p (ps_msg => 'entityinheritveto', pb_test_not_zero => true);
select count (*)
into ln_counter
from entitymethod m
where m.entityclass = pn_entity;
if ln_counter > 0 then
dbms_output.put_line (a => 'This entity has ' || ln_counter || ' methods');
end if;
select count (*)
into ln_counter
from entitymessage m
where m.entityclass = pn_entity;
if ln_counter > 0 then
dbms_output.put_line (a => 'This entity has ' || ln_counter || ' messages');
end if;
/* for rec in (select classified, entitymethod, entityattribute, designobjtype,
ordernumber, label, status, tagstring, code, istable
from entitymethodparam p
where p.entitymethod in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
or p.entityattribute in (select a.classified
from entityattribute a
where a.entityclass = pn_entity)) loop
ln_new_entitymethod := null;
ln_new_entityattribute := null;
if rec.entitymethod is not null then
insert into entitymethod
(classified, methodtype, entityclass, code, label, description,
sqlname, intention, methodtext)
select classified.nextval, methodtype, ln_new_entity, code, label,
description, sqlname, intention, methodtext
from entitymethod m
where m.classified = rec.entitymethod
returning classified
into ln_new_entitymethod;
p (ps_msg => 'entitymethod');
end if;
if rec.entityattribute is not null then
insert into entityattribute
(classified, entityclass, code, label, description, parent,
designobjtype, entitytable, columnname, keyvalue)
select classified.nextval, ln_new_entity, code, label, description, parent,
designobjtype, entitytable, columnname, keyvalue
from entityattribute a
where a.entityclass = pn_entity
returning classified
into ln_new_entityattribute;
p (ps_msg => 'entityattribute');
end if;
insert into entitymethodparam
(classified, entitymethod, entityattribute, designobjtype, ordernumber,
label, status, tagstring, code, istable)
select classified.nextval, ln_new_entitymethod, ln_new_entityattribute,
designobjtype, ordernumber, label, status, tagstring, code, istable
from entitymethodparam p
where p.classified = rec.classified;
p (ps_msg => 'entitymethodparam');
end loop;*/
insert into entityaction
(classified, entityclass, entitymessage, actiongroup, actionorder,
actiontype, action, actionstring, isdisabled, sqlcondition, isrevert)
select classified.nextval, ln_new_entity, ea.entitymessage, ea.actiongroup,
ea.actionorder, ea.actiontype, ea.action, ea.actionstring, ea.isdisabled,
ea.sqlcondition, ea.isrevert
from entityaction ea
where ea.entityclass = pn_entity
and ea.entitymessage not in (select m.classified
from entitymessage m
where m.entityclass = pn_entity)
and ea.action not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
and ea.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity);
p (ps_msg => 'entityaction', pb_test_not_zero => true);
insert into entityproc
(entityclass, entitymessage, actiongroup, procorder, singlecommand,
multicommand)
select ln_new_entity, entitymessage, actiongroup, procorder, singlecommand,
multicommand
from entityproc p
where p.entityclass = pn_entity
and p.entitymessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)
and p.singlecommand not in (select me.sqlname
from entitymethod me
where me.entityclass = pn_entity)
and p.multicommand not in (select me.sqlname
from entitymethod me
where me.entityclass = pn_entity);
p (ps_msg => 'entityproc', pb_test_not_zero => true);
insert into entitylinkprocessing
(classified, entityclass, entitymessage, processorder, entityfilter,
linkclass, linkstate, sqlcondition, isrevert, linkmessage, checkoperation,
errorprocessing, isdisabled, inheritfrom, isclassrevert, isstaterevert,
checkerrormsg)
select classified.nextval, ln_new_entity, entitymessage, processorder, entityfilter,
linkclass, linkstate, sqlcondition, isrevert, linkmessage, checkoperation,
errorprocessing, isdisabled, inheritfrom, isclassrevert, isstaterevert,
checkerrormsg
from entitylinkprocessing l
where l.entityclass = pn_entity
and l.entitymessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)
and l.linkmessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)
and l.entityfilter not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
and l.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity);
p (ps_msg => 'entitylinkprocessing');
for states in (select classified, entityclass, code, label, description, docstate,
docstateorder, parentstate, statecondition
from entitystate s
where s.entityclass = pn_entity) loop
insert into entitystate
(classified, entityclass, code, label,
description, docstate, docstateorder,
parentstate, statecondition)
values (classified.nextval, ln_new_entity, states.code, states.label,
states.description, states.docstate, states.docstateorder,
states.parentstate, states.statecondition)
returning classified
into ln_new_entitystate;
p (ps_msg => 'entitystate:' || states.label, pb_test_not_zero => true);
l_entitystates.extend;
l_entitystates (l_entitystates.count).entitystate_old := states.classified;
l_entitystates (l_entitystates.count).entitystate_new := ln_new_entitystate;
for oper in (select classified, entityclass, entitystate, entitymessage, label,
ordernumber, showtype, sqlcondition, isrevert, parentoperation
from entityoperation o
where o.entityclass = pn_entity
and o.entitystate = states.classified
and o.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
and o.entitymessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)) loop
insert into entityoperation
(classified, entityclass, entitystate,
entitymessage, label, ordernumber, showtype,
sqlcondition, isrevert, parentoperation)
values (classified.nextval, ln_new_entity, ln_new_entitystate,
oper.entitymessage, oper.label, oper.ordernumber, oper.showtype,
oper.sqlcondition, oper.isrevert, oper.parentoperation)
returning classified
into ln_new_entityoperation;
l_entityopers.extend;
l_entityopers (l_entityopers.count).entityoper_old := oper.classified;
l_entityopers (l_entityopers.count).entityoper_new := ln_new_entityoperation;
p (ps_msg => '>>entityoperation:' || oper.label, pb_test_not_zero => true);
insert into accessoperation
(entityoperation, accessgroup, accessmode)
select ln_new_entityoperation, accessgroup, accessmode
from accessoperation a
where a.entityoperation = oper.classified;
p (ps_msg => '>>>accessoperation', pb_test_not_zero => false);
end loop;
insert into entitypropvalue
(classified, proptype, entityclass, entitymessage, entitystate, context,
propvalue, sqlcondition, isrevert, ordernumber, parentproperty,
description, validfromdate, validtodate)
select classified.nextval, proptype, ln_new_entity, entitymessage,
ln_new_entitystate, context, propvalue, sqlcondition, isrevert,
ordernumber, parentproperty, description, validfromdate, validtodate
from entitypropvalue p
where p.entityclass = pn_entity
and p.entitystate = states.classified
and p.entitymessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)
and p.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity);
p (ps_msg => '>>entitypropvalue', pb_test_not_zero => true);
end loop;
for i in 1 .. l_entityopers.count loop
for j in 1 .. l_entitystates.count loop
insert into entitytransition
(classified, operation, stateto, sqlcondition, isrevert, action,
parenttransition)
select classified.nextval, l_entityopers (i).entityoper_new,
l_entitystates (j).entitystate_new, sqlcondition, isrevert, action,
parenttransition
from entitytransition t
where t.operation = l_entityopers (i).entityoper_old
and t.stateto = l_entitystates (j).entitystate_old
and t.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
and t.action not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity);
p (ps_msg => 'entitytransition' /*, pb_test_not_zero => true*/);
end loop;
end loop;
for oper in (select classified, entityclass, entitystate, entitymessage, label,
ordernumber, showtype, sqlcondition, isrevert, parentoperation
from entityoperation o
where o.entityclass = pn_entity
and o.entitystate is null
and o.sqlcondition not in (select m.classified
from entitymethod m
where m.entityclass = pn_entity)
and o.entitymessage not in (select mm.classified
from entitymessage mm
where mm.entityclass = pn_entity)) loop
insert into entityoperation
(classified, entityclass, entitystate, entitymessage,
label, ordernumber, showtype, sqlcondition,
isrevert, parentoperation)
values (classified.nextval, ln_new_entity, null, oper.entitymessage,
oper.label, oper.ordernumber, oper.showtype, oper.sqlcondition,
oper.isrevert, oper.parentoperation)
returning classified
into ln_new_entityoperation;
l_entityopers.extend;
l_entityopers (l_entityopers.count).entityoper_old := oper.classified;
l_entityopers (l_entityopers.count).entityoper_new := ln_new_entityoperation;
p (ps_msg => '>>entityoperation:' || oper.label, pb_test_not_zero => true);
insert into accessoperation
(entityoperation, accessgroup, accessmode)
select ln_new_entityoperation, accessgroup, accessmode
from accessoperation a
where a.entityoperation = oper.classified;
p (ps_msg => '>>>accessoperation', pb_test_not_zero => false);
end loop;
return ln_new_entity;
end arm_copy_entity_to_new;
|
|
|
Mon Feb 16, 2009 9:24 am |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|