Discussions
Categories
- 17.9K All Categories
- 3.4K Industry Applications
- 3.4K Intelligent Advisor
- 75 Insurance
- 537.7K On-Premises Infrastructure
- 138.7K Analytics Software
- 38.6K Application Development Software
- 6.1K Cloud Platform
- 109.6K Database Software
- 17.6K Enterprise Manager
- 8.8K Hardware
- 71.3K Infrastructure Software
- 105.4K Integration
- 41.6K Security Software
HELP - Refresh variable - ORA-00920: invalid relational operator

Meapri-Oracle
Member Posts: 65
I created a variable to be used as a filter. When the LKM runs it fails at the first step with the ORA-00920: invalid relational operator.
ODI cannot parse the syntax of the variable. I don't know where the error is . Has someone already encountered this king of error ?
Thanks Meapri.
edit : The Variable is :
- alphanumeric
- historic
- in (select business_unit from SYSADM.PS_S1_ODI_FILTR_BU)
The generated SQL :
create or replace view SYSADM_ODI.C$_0BCT_CTL
(
C1_BUSINESS_UNIT,
C2_EIP_CTL_ID,
C3_TRANS_PROGRAM,
C4_TRANSACTION_CODE,
C5_DT_TIMESTAMP,
C6_BCT_STATUS,
C7_BCT_SOURCE,
C8_PROCESS_INSTANCE,
C9_OPRID,
C10_DEVICE_ID,
C11_DEVICE_LAST_SEQ,
C12_DEVICE_DTTIME,
C13_EIP_TRANS_SRC_REF,
C14_EIP_TRANS_SRC,
C15_PUBNODE,
C16_CHNLNAME,
C17_PUBID,
C18_MSGNAME,
C19_SUBNAME,
C20_ERRORS_FLG,
C21_PARTIAL_FLG
)
as select
BCT_CT.BUSINESS_UNIT,
BCT_CT.EIP_CTL_ID,
BCT_CT.TRANS_PROGRAM,
BCT_CT.TRANSACTION_CODE,
BCT_CT.DT_TIMESTAMP,
BCT_CT.BCT_STATUS,
BCT_CT.BCT_SOURCE,
BCT_CT.PROCESS_INSTANCE,
BCT_CT.OPRID,
BCT_CT.DEVICE_ID,
BCT_CT.DEVICE_LAST_SEQ,
BCT_CT.DEVICE_DTTIME,
BCT_CT.EIP_TRANS_SRC_REF,
BCT_CT.EIP_TRANS_SRC,
BCT_CT.PUBNODE,
BCT_CT.CHNLNAME,
BCT_CT.PUBID,
BCT_CT.MSGNAME,
BCT_CT.SUBNAME,
BCT_CT.ERRORS_FLG,
BCT_CT.PARTIAL_FLG
from SYSADM.PS_BCT_CTL BCT_CT
where (1=1)
And (BCT_CT.BUSINESS_UNIT #JDC2_v2.ALL_BU)
Edited by: Meapri on Nov 21, 2008 8:38 AM
ODI cannot parse the syntax of the variable. I don't know where the error is . Has someone already encountered this king of error ?
Thanks Meapri.
edit : The Variable is :
- alphanumeric
- historic
- in (select business_unit from SYSADM.PS_S1_ODI_FILTR_BU)
The generated SQL :
create or replace view SYSADM_ODI.C$_0BCT_CTL
(
C1_BUSINESS_UNIT,
C2_EIP_CTL_ID,
C3_TRANS_PROGRAM,
C4_TRANSACTION_CODE,
C5_DT_TIMESTAMP,
C6_BCT_STATUS,
C7_BCT_SOURCE,
C8_PROCESS_INSTANCE,
C9_OPRID,
C10_DEVICE_ID,
C11_DEVICE_LAST_SEQ,
C12_DEVICE_DTTIME,
C13_EIP_TRANS_SRC_REF,
C14_EIP_TRANS_SRC,
C15_PUBNODE,
C16_CHNLNAME,
C17_PUBID,
C18_MSGNAME,
C19_SUBNAME,
C20_ERRORS_FLG,
C21_PARTIAL_FLG
)
as select
BCT_CT.BUSINESS_UNIT,
BCT_CT.EIP_CTL_ID,
BCT_CT.TRANS_PROGRAM,
BCT_CT.TRANSACTION_CODE,
BCT_CT.DT_TIMESTAMP,
BCT_CT.BCT_STATUS,
BCT_CT.BCT_SOURCE,
BCT_CT.PROCESS_INSTANCE,
BCT_CT.OPRID,
BCT_CT.DEVICE_ID,
BCT_CT.DEVICE_LAST_SEQ,
BCT_CT.DEVICE_DTTIME,
BCT_CT.EIP_TRANS_SRC_REF,
BCT_CT.EIP_TRANS_SRC,
BCT_CT.PUBNODE,
BCT_CT.CHNLNAME,
BCT_CT.PUBID,
BCT_CT.MSGNAME,
BCT_CT.SUBNAME,
BCT_CT.ERRORS_FLG,
BCT_CT.PARTIAL_FLG
from SYSADM.PS_BCT_CTL BCT_CT
where (1=1)
And (BCT_CT.BUSINESS_UNIT #JDC2_v2.ALL_BU)
Edited by: Meapri on Nov 21, 2008 8:38 AM
Answers
-
You have not given a relational operator in the filter clause, you have:
bq. BCT_CT.BUSINESS_UNIT #JDC2_v2.ALL_BU
I suggest you probably want something like:
bq. BCT_CT.BUSINESS_UNIT = '#JDC2_v2.ALL_BU'
Note that I not only put the equals sign in, but you probably need to put quotes round the variable as well if you want to make a comparison. -
Thanks for you answer but it is not what I want to do.
I need to execute :
Create View
Select list of field from table where business_unit in (select business_unit from SYSADM.PS_S1_ODI_FILTR_BU) -
I have not found the answer yet but the problem seems to be related to the context.
I created a new context in topology and the variable could be intepreted -
Topology issue
This discussion has been closed.