ORA-30563, Outer Join not allowed in select list
I can not find any information about this error message that I am getting.
I have just upgraded my Oracle database from Version 7.3 to Version 8.1.7, a stored procedure that was written in v7.3 has outer joins in the select statement.
when trying to run this proc in version 8 I get this meesage.(ORA-30563, Outer Join not allowed in select list)
code ex:
Select alt.id
decode(alt.advise, NULL, NULL, AA.act_yr(+))||'-'||AA.act_per(+)||'-'||AA.Acc_per_no(+)) as advise_no
from alt, AA;
Is there any information about this message anywhere? or does anybody know if this is a known issue with oracle ver 8.1.7?
Thanks
CJ
It appears to have been a bug in 7.x
From a metalink note on bugs fixed in 8i (doc 132632.1)
974742 Oracle does not report an error if (+) is specified in select-list. The OUTER JOIN operator (+) is only valid in WHERE clause predicates. As this is not flagged as an error the query can give unexpected results. The correct action to avoid this problem is to fix the query.
Ken
Similar Messages
-
Outer Join problems - "ORA-30563 outer join operator (+) not allowed in select-list"
Products: Discoverer 4.1.33.0.2
(Admin and User/Plus)
8i EE 8.1.7 (Discoverer server)
8i EE 8.1.5 ('source data' server)
Background assumptions: (1) If a column from an "outer-joined" table is compared to a constant, the outer join operator must be applied to that column in order for the outer join to work. (2) A 'Condition' specified in Discoverer User/Plus manifests as a comparison to a constant.
I created a join in Admin between two folders, selected 'outer join on detail' option. In User/Plus, created worksheet containing columns from the joined folders. When no Conditions are NOT specified, results seem ok. However, when Condition IS added, worksheet encounters "ORA-30563 outer join operator (+) not allowed in select-list" and returns blank sheet.
To workaround, created Custom folder with outer join in place. Didn't work either with Conditions specified. No error, but I think that because Discoverer did not 'outer join' the Condition column, the outer join was ignored.
Any insights, ideas, or workarounds are much appreciated.
-JimIf you build a query that uses an outer join then any items from the potentially deficient side of the join will have (+) appended to them everywhere in the sql. Up until 8.1.7 this was OK in the select list as it was just treated as noise and ignored - However this now fails with ORA-30563:
outer join operator (+) not allowed in select-list...
In 4.1.33.1.6 you get the error 'ORA-30563 outer join operator(+) not allowed in select list'.
In 4.1.36.1.10 the query runs OK.. Your work around I would guess would be to create a custom folder as you suggested. -
ORA-01719: outer join operator (+) not allowed in operand of OR or IN
I am getting the following Error when I tried to execute my Query.
Error : ORA-01719: outer join operator (+) not allowed in operand of OR or IN
select unique t.estblmt_src_typ_id as estblmt_src_typ_id,
t.name as name from estblmt_src_typ t, src_estblmt_unknown_data u, estblmt_src eSrc, estblmt e,
additional_addr aa, country c, src_country_state_region scsr
where
(t.estblmt_src_typ_id=u.estblmt_src_typ_id and
e.state_region_id=scsr.state_region_id and
upper(scsr.code1)='UNKNOWN' and
u.processed_ind = 'N' and
eSrc.Estblmt_Alt_Id = u.estblmt_alt_id and
u.estblmt_src_typ_id = eSrc.estblmt_src_typ_id and
eSrc.Estblmt_Id = e.estblmt_id and
e.country_id = c.country_id and
u.estblmt_element = 'State Region' and
scsr.estblmt_src_typ_id = u.estblmt_src_typ_id and
aa.estblmt_id(+)=e.estblmt_id and
e.end_dt is null) or
(t.estblmt_src_typ_id=u.estblmt_src_typ_id and
aa.state_region_id=scsr.state_region_id and
upper(scsr.code1)='UNKNOWN' and u.processed_ind = 'N' and
eSrc.Estblmt_Alt_Id = u.estblmt_alt_id and
u.estblmt_src_typ_id = eSrc.estblmt_src_typ_id and
eSrc.Estblmt_Id = aa.estblmt_id and aa.country_id = c.country_id and (u.estblmt_element = 'Additional State Code' or u.estblmt_element = 'Additional State Province') and scsr.estblmt_src_typ_id = u.estblmt_src_typ_id
and aa.estblmt_id=e.estblmt_id and e.end_dt is null) order by t.nameFirst, is this query being executed within Apex or at the SQL prompt or in SQL Workshop, or something else? Some context of where it's being executed may help.
Next, that's a query from hell. How about rewrting it to use ANSI join syntax instead, so it'a bit more readable?
A quick example for part of it would be:
FROM (additional_addr aa LEFT OUTER JOIN estblmt e ON aa.estblmt_id = e.estblmt_id )
etc.
Just add additional parenthesis for each additional table join, similar to:
FROM ((additional_addr aa LEFT OUTER JOIN estblmt e ON aa.estblmt_id = e.estblmt_id )
LEFT OUTER JOIN src_country_state_region scsr ON aa.state_region_id = scsr.state_region_id )
In the long run it will make the query a bit more legible, so your where clause only lists the query conditions, not the join conditions. Then it becomes easier to quickly glance at it and see where potential problems may be.
Bill Ferguson -
On my 2009 Mac Pro, 10.7.5 upon startup, restore windows... window is flashing with finder icon popping in and out of dock. computer will not allow any selection. I'm hoping someone may know a solution.
http://www.apple.com/support/lion/installrecovery/
http://support.apple.com/kb/HT4718
https://support.apple.com/kb/DL1433
http://reviews.cnet.com/8301-13727_7-20081109-263/recovery-options-for-macs-runn ing-os-x-lion/
https://www.apple.com/macosx/recovery/
http://support.apple.com/kb/HT4848 -
ORA-01733- virtual column not allowed here - Insert using inline view
Does anyone know why I am getting ORA-01733- virtual column not allowed here
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
---no error without WITH CHECK option
SQL> INSERT INTO
2 (SELECT
3 location_id,
4 city,
5 l.country_id
6 FROM countries c, locations l,regions r
7 where l.country_id = c.country_id
8 and r.region_id=c.region_id
9 and r.region_name = 'Asia')
10 VALUES (5500, 'Wansdworth Common', 'UK');
1 row created.
SQL> rollback;
Rollback complete.
-----error with WITH CHECK OPTION
SQL> INSERT INTO
2 (SELECT
3 location_id,
4 city,
5 l.country_id
6 FROM countries c, locations l,regions r
7 where l.country_id = c.country_id
8 and r.region_id=c.region_id
9 and r.region_name = 'Asia' WITH CHECK OPTION)
10 VALUES (5500, 'Wansdworth Common', 'UK');
INSERT INTO
ERROR at line 1:
ORA-01733: virtual column not allowed here
I was expecting
ORA-01402: view WITH CHECK OPTION where-clause violation
for the second one. Is there anything I am missing here ?Randolf
Thank you very much for the update to this old question
After reading the link I think I should ignore this error and accept it as ORA-01402
The information you asked me to check did not lead me an understanding of different error types.
SQL> ----view for ORA-01733
SQL> create view test_v_1
2 as
3 SELECT
4 location_id,
5 city,
6 l.country_id
7 FROM countries c, locations l,regions r
8 where l.country_id = c.country_id
9 and r.region_id=c.region_id
10 and r.region_name = 'Asia' WITH CHECK OPTION;
View created.
SQL>
SQL>
SQL>
SQL> select * from user_updatable_columns where table_name='TEST_V_1';
OWNER TABLE_NAME COLUMN_NAME UPD INS DEL
HR TEST_V_1 CITY YES YES YES
HR TEST_V_1 COUNTRY_ID NO NO NO
HR TEST_V_1 LOCATION_ID YES YES YES
SQL>
SQL> ----view for ORA-01402
SQL>
SQL> create view test_v_2
2 as
3 SELECT
4 d.department_id,
5 d.department_name,
6 d.location_id
7 FROM hr.departments d,hr.locations l
8 WHERE l.location_id=d.location_id
9 and d.location_id < 2000
10 WITH CHECK OPTION;
View created.
SQL>
SQL> select * from user_updatable_columns where table_name='TEST_V_2';
OWNER TABLE_NAME COLUMN_NAME UPD INS DEL
HR TEST_V_2 DEPARTMENT_ID YES YES YES
HR TEST_V_2 DEPARTMENT_NAME YES YES YES
HR TEST_V_2 LOCATION_ID NO NO NO
SQL>
SQL>
SQL> ----INSERT STILL FAILING WITH DIFFERENT ERROR DESPITE THE SAME UPDATABLE COLUMN STRUCTURE
SQL> insert into test_v_1 values (5500, 'Wansdworth Common', 'UK');
insert into test_v_1 values (5500, 'Wansdworth Common', 'UK')
ERROR at line 1:
ORA-01733: virtual column not allowed here
SQL> insert into test_v_2 values (9999, 'Entertainment', 2500);
insert into test_v_2 values (9999, 'Entertainment', 2500)
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
SQL>A. Coskan GUNDOGAR
Oracle DBA
http://coskan.wordpress.com
“A man's errors are his portals of discovery.”
James Joyce -
10.8 - image capture - "import to" does not allow to select a program
Hi,
after updating to 10.8 I was hoping that my problem with 10.7.4 and Image Capture would be solved but it persist and additionaly has removed all my setings.
When Image Capture shows the pictures of my iPhone I select some pictures and go to "Import To Other".
That will open the "Open" dialog with all Programs/Applications on my Mac, but all Programs/Applications are grayed out.
Until 10.7.3 one was able to select any program to send the pictures to it like Evernote, ExifRenamer, etc.
Anyone else has the same issue?
Regards, Carsten
10.7.4 - image capture - "import to" does not allow to select a programThere is a work-around availbale now in the other thread.
10.7.4 - image capture - "import to" does not allow to select a program -
Received ORA-22818 subquery expressions not allowed here when creating mate
Hello,
I was trying to create a materialized view to describe the referential integrity between the tables in my schema:
create materialized view user_references
tablespace tbspc
build immediate
using index
refresh complete on demand next sysdate + 1
as
select uic.table_name to_table, uic.column_name to_column,
ucc.table_name from_table, ucc.column_name from_column
from user_ind_columns uic, user_constraints uc, user_cons_columns ucc
where uic.index_name = uc.r_constraint_name
and uc.constraint_name = ucc.constraint_name
and uc.owner=upper('my_schema');
I was able to create this MV in Oracle 9.2. It failed with the following error when I ran it against Oracle 10.1:
from user_ind_columns uic, user_constraints uc, user_cons_columns ucc
ERROR at line 9:
ORA-22818: subquery expressions not allowed here
Is not allowing subqueries in MV a new restriction in Oracle 10? Is there a workaround?
ThanksHello
This may be a bug in your version as I can do it successfully on 10.2
tylerd@DEV2> create materialized view user_references
2 build immediate
3 using index
4 refresh complete on demand next sysdate + 1
5 as
6 select uic.table_name to_table, uic.column_name to_column,
7 ucc.table_name from_table, ucc.column_name from_column
8 from user_ind_columns uic, user_constraints uc, user_cons_columns ucc
9 where uic.index_name = uc.r_constraint_name
10 and uc.constraint_name = ucc.constraint_name
11 and uc.owner=upper('my_schema');
Materialized view created.
tylerd@DEV2> select * from v$version
2 /
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
PL/SQL Release 10.2.0.2.0 - Production
CORE 10.2.0.2.0 Production
TNS for 32-bit Windows: Version 10.2.0.2.0 - Production
NLSRTL Version 10.2.0.2.0 - Production
5 rows selected.HTH
David -
Hi guys, I m facing a problem while executing below query .Query is working fine in toad i don't know what is the issue with the code
<code>
String url3 = "CREATE OR REPLACE VIEW Table2(PERIOD, YEARS, COST_CENTRE, S_DIR_PERM, S_DIR_CONT, S_INDIR_PERM, S_INDIR_CONT, O_DIR_PERM, O_DIR_CONT, O_INDIR_PERM, O_INDIR_CONT)AS select period, year, cost_center, sum(s_dir_perm), sum(s_dir_cont), sum(s_indir_perm), sum(s_indir_cont), sum(o_dir_perm), sum(o_dir_cont), sum(o_indir_perm), sum(o_indir_cont) from ( select b.period, b.year, a.cost_center, sum(a.perm_dir_hc) as s_dir_perm, sum(a.contract_dir_hc) as s_dir_cont, sum(a.perm_indir_hc) as s_indir_perm, sum(a.contract_indir_hc) as s_indir_cont, 0 as o_dir_perm, 0 as o_dir_cont, 0 as o_indir_perm, 0 as o_indir_cont from ZVHR_ACT_HC_ASOF_FISPRD a, pertable b where to_char(as_of_date, 'mm/dd/yyyy') = b.ENDPERIOD and shift not in ('G','N','O2','O7') and b.endperiod = ? group by b.period, b.year, a.cost_center union select b.period, b.year, a.cost_center, 0 as s_dir_perm, 0 as s_dir_cont, 0 as s_indir_perm, 0 as s_indir_cont, sum(a.perm_dir_hc) as o_dir_perm, sum(a.contract_dir_hc) as o_dir_cont, sum(a.perm_indir_hc) as o_indir_perm, sum(a.contract_indir_hc) as o_indir_cont from ZVHR_ACT_HC_ASOF_FISPRD a, pertable b where to_char(as_of_date, 'mm/dd/yyyy') = b.ENDPERIOD and shift in ('G','N','O2','O7') and b.endperiod = ? group by b.period, b.year, a.cost_center) group by period, year, cost_center";
PreparedStatement statement3 = connection.prepareStatement(url3);
statement3.setString(1, "12/10/2008");
statement3.setString(2, "12/10/2008");
statement3.addBatch();
statement3.executeBatch();
</code>
i m getting the following error
java.sql.BatchUpdateException: ORA-01027: bind variables not allowed for data definition operations
can any1 help me with this.Can you explain what you are trying to do from a business perspective?
If you are creating a view, it doesn't make sense to pass bind variables to that DDL statement. The view definition itself is going to have to end up with hard coded date values there. So what possible benefit is there to using bind variables?
As an aside, if you are using bind variables and you have DATE columns, you really want to pass in the proper data type (i.e. setDate or setTimestamp rather than setString). Otherwise, Oracle has to do implicit string to date conversion, which depends on the session's NLS settings, which is likely to be different on different client machines and lead to all sorts of odd errors and behaviors down the line.
Are you trying to build a view that takes parameters? If so, there are a few options for that sort of thing.
Justin -
Restrict the user should not allow to select No Excise entry tab in MIGO
Hi
how to restrict the user should not allow to select No Excise entry tab in MIGO
if the material Excisable user can bale to select the No Excise entry tab in MIGO . my requirement .... if the Pop come Please enter Excise Invoice number and Excise Invoice Date user should not change the No Excise how to restrict pls advise me
@sakhiThese are the options provided by SAP keeping in mind Indian Scenario. Sometimes, vendor forget to send excise invoice copy with the material, in such case, you can select 'Only Part I'.
Even if you have maintain vendor excise details & material excise details (By mistake) in J1ID, system will throw an error message, excise invoice value is zero. In such case, we can select option 'No excise entry'.
Your requirement can't be fulfilled in standard way. Even if you go for any Z- developement, you will lose the option. -
LOV in @prompt not allowing multi selections
Post Author: johnson77
CA Forum: Desktop Intelligence Reporting
@Select(Expense Report Line Items\ERL Expense Category) IN ( @prompt('Select Category(s) from list or key in % for All Categories','A','Expense Types\Expense Category',Mutli,free) )or '%' IN ( @prompt('Select Category(s) from list or key in % for All Categories','A','Expense Types\Expense Category',Mutli,free) )
Issue #1, The above prompt is NOT allowing multi selections from the list. (in desktop or webi versions)
Issue #2, The above prompt allows for all selection by using the % which works on desktop version, but not Webi.
Any clues to why on either of these issues.
BusinessObjects 6.5Post Author: GregPye
CA Forum: Desktop Intelligence Reporting
Hi
If the code above was pasted from the code that actually runs, then I would suggest it could be because you have spelt "multi" incorrectly... not sure if DeskI would through that up as an error, or just ignore it! -
ORA-02253: constraint specification not allowed here
I'm trying to create a table clients with primairy key, but I'm getting the error "ORA-02253: constraint specification not allowed here"
if anyone call what to do
CREATE TABLE CLIENTS
NUMERO NUMBER(6) CONSTRAINT PK_CLIENTS PRIMAIRY KEY,
NOM VARCHAR(63), NOT NULL,
PRENOM VARCHAR(63),
NAISSANCE DATE
Edited by: user10397656 on Oct 13, 2008 1:40 AMThere are some errors in your script :
PK_CLIENTS PRIMAIRY KEY
and
NOM VARCHAR(63)*,* NOT NULL,
Try this way
CREATE TABLE CLIENTS
NUMERO NUMBER(6) CONSTRAINT PK_CLIENTS PRIMARY KEY,
NOM VARCHAR(63) NOT NULL,
PRENOM VARCHAR(63),
NAISSANCE DATE
); -
Ora-02089-COMMIT is not allowed in a subordinate session - V'urgent pls
All,
BPEL version: 11.1.1
I have to invoke a pl/sql procedure which inserts a data to a table. After insert, I used commit. When BPEL try to invoke this procedure, I got ora-02089-COMMIT is not allowed in a subordinate session+. I know without commit in pl/sql, BPEL does the commit. But for a requirement, I've to explicitly use COMMIT inside the procedure. How do I go about in this case?
Please advise.
Thanks,
SenIMHO.... I personally do not like using XA data sources most of the time. I can only think of a few scenarios in all my implementation where I had to undo all the 50 steps (in which case they should be a single call anyway). Mixing and matching "pragma autonomous transaction" calls with DBAdapter updates on a XA data source in a single process have gotten me into tremendous trouble and data corruption.
Also if you really have a case where you dont want to commit, I believe you can use the idempotent flag on partnerlinks to avoid the commit. There also might be cases where the PL/SQL defined as "pragma.." might be used by other non-BPEL stuff and you are just opening DB connections even when you dont need to. -
ORA-02089: COMMIT is not allowed in a subordinate session
Here is my configuration.
jdbc driver:10.2.0.3.0
EJB-CMP
Am using oracle.jdbc.xa.client.OracleXADataSource as the driver in my websphere application server 6.0.0.1.
when i am calling a stored procedure from my EJB and in the stored procedure if
i perform any DDL operation like truncate a table,create a table or commit it throws the exception:-
ORA-02089: COMMIT is not allowed in a subordinate session
please help me in solving this issue asap.hi umesh ,
i had seen this link before ,
My oracle version is 10g.still its giving the same error.
In the link yoy send they say the problem is in oracle 9i driver and it is solved in 10g .The driver version is 10.2.0.3 ,still i get the same error.
do u have any idea?
Regards,
sreenath. -
ORA-01719: outer join operator (+) not allowed in operand of OR
Hi all:
I understand the error, but I'm not sure how to fix my query. In our database, a person does not NEED to have an address. The report I'm trying to create has a parameter for which address the user would like to have displayed. BUT, I need to outer join to the address table since people don't need an address, but we'd want to display all records, even if the address is null. Here's only part of my code since the query is quite large. Let me know if more is needed, and I'll supply it. I'm definately stuck. At this point I'm thinkin' of just creating two reports; one that displays the clients address, and a second that'll display the house physical address. The code:
WHERE
:P_ADDR = 'Lessee Mailing Address' AND
lessee.actor_inst = address.actor_inst (+)
) OR (
:P_ADDR = 'Unit Address' AND
housing.actor_inst = address.actor_inst (+)
) ANDStick with ANSI SQL Notation, then you can overcome this restriction.
See Back to basics: outer joins
and look for »ORA-01719« -
Dynamic From statement in select query and/or outer join not working
Dear Experts, I have a select query where the select columns are dynamic, the where condition is also dynamic. It is of the below format:
Select (dynamic columns) INTO <wa>
FROM a inner join b on af1 = bf1
inner join c on af2 = cf2......
WHERE (dynamic conditios)
ORDER BY ( dynamic sort condition).
Now I have to include some tables (dynamically depending on the user input) in the inner join statement which will give description for the selected fields. And these database tables may or may no be empty. So in this case, my select query will not return any data if these tables are empty. And I dont want that.
I tried using outer join for the extra tables but it gave me a runtime error. I also tried forming the inner join statement dynamically but it was not supporting.
Kindly give me pointers.
ThanksHey thanks for the reply, but the problem is not solved.
I am already using ( fileds, value) like table in my where condition and the select statement was working properly.
the problem is that now I have to include some tables in the join statement which can be empty and so i want to use Outer join.
But I am getting a runtime error as below:
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SYNTAX', was not
caught in
procedure "ZATSCSNG_RFC_READ_TABLE" "(FUNCTION)", nor was it propagated by a
RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The running ABAP program wanted to execute a SELECT statement whose
WHERE condition was (partly) specified dynamically. The part that is
specified in an internal table at runtime is compared to a field of the
right table of an LEFT OUTER JOIN. Such comparisons are not supported by
all database systems and are therefore not allowed.
Maybe you are looking for
-
Are there any Beta users who didn't need to create a new library in 1.0?
I know that I had to. A whole lot of flakiness disappeared when I did. I did the usual thing of exporting the Beta 4.1 XMP metadata and then re-importing all my files to a brand new native 1.0 library. Since then, I've had _no_ sorting problems and n
-
How to manage/copy/track db in Oracle
Hi, I'm working on dev ORacle db so we have couple of changes every day and then we go to change control location to log most recent source for each object: sp, package, ddl, etc.. Is there any good auto tool to make snapshot for the whole db and hav
-
Dear all, How to see payment has been made against po or not? We are not maintaining reference at d time of payment. thnx in advance vikas
-
Back Forward arrows not working properly Safari 5.1.2
After upgrading to Safari 5.1.2 on Snow Leopard, I have run into a bug with the back and forward arrows. Most of the time they are greyed out and not working. I have to move back and forward with either the keyboard shortcut or the menu. Sometimes on
-
Re: [b]creation of 10th Database on single pc[/b]
GREETINGS, I need to create about 30 database on a single PC win 2000 pro sp1?? I am using Oracle 8.0.4 on Win NT and when i go through the database assistant wizard I am able to create 9 data base successfully. When i create the 10 database the serv