How to use : bind character in DB adapter Select Query SOA11g. Getting Error code :17003 .java.sql.SQLException: Invalid column index error
Hi All,
The Actual query to perform is below.
SELECT name,number from emp WHERE CASE WHEN :1='T' AND term_date IS Not NULL THEN 1 WHEN :1='A' AND term_date IS NULL THEN 1 WHEN :1='ALL' THEN 1 ELSE 1 END = 1;
I have tried in DB adapter like below as a parameter for :1 as #vInputParam
SELECT name,number from emp WHERE CASE WHEN #vInputParam='T' AND term_date IS Not NULL THEN 1 WHEN #vInputParam='A' AND term_date IS NULL THEN 1 WHEN #vInputParam='ALL' THEN 1 ELSE 1 END = 1;
Getting Error code :17003 .java.sql.SQLException: Invalid column index error.
Please suggest me on using ':' bind character in DB adapter Select Query SOA11g.
Can someone help me on this please?
Thanks,
Hari
Hi,
Could you please make sure your binding style(Oracle Positional,Oracle named..etc) of the Seeded VO and Custom Vo are same.
This is the option you will get when you are extending your vo. So make sure that both are same.
You can refer the below link too
VO extension leads to "Invalid column index" exception
Thanks
Bharat
Similar Messages
-
Java.sql.SQLException: Invalid column index in database adapter
I have a query that works fine if I run the sql in a JDeveloper SQL editor, but I get a "java.sql.SQLException: Invalid column index" error if I paste it in a database adapter. If I put this query in the adapter:
select <column>
from <table>
where <column> in (select
trim( substr (txt,
instr (txt, ',', 1, level ) + 1,
instr (txt, ',', 1, level+1)
- instr (txt, ',', 1, level) -1 ) )
as token
from (select ','||#bindVariable||',' txt
from dual)
connect by level <=
length(#bindVariable)-length(replace(#bindVariable,',',''))+1)I get the error. But if I just put the sub query in the adapter as:
select
trim( substr (txt,
instr (txt, ',', 1, level ) + 1,
instr (txt, ',', 1, level+1)
- instr (txt, ',', 1, level) -1 ) )
as token
from (select ','||#bindVariable||',' txt
from dual)
connect by level <=
length(#bindVariable)-length(replace(#bindVariable,',',''))+1the error goes away. Does anyone know what might be causing this?
Thanks in advanceHi,
Could you please make sure your binding style(Oracle Positional,Oracle named..etc) of the Seeded VO and Custom Vo are same.
This is the option you will get when you are extending your vo. So make sure that both are same.
You can refer the below link too
VO extension leads to "Invalid column index" exception
Thanks
Bharat -
Java.sql.SQLException: Invalid column index Query: while using ROWNUM
hi ,
i am getting the invalid column index query error while executing following query .i m able to run it properly without using rownum but when i append rownum i m getting error.i m using apache queryrunner for execution of query.
java.sql.SQLException: Invalid column index Query: select * from (
SELECT
TO_CHAR(A.REQ_FOR_RATING_ID) RFQID,
TO_CHAR(F.COV_PLAN_ID) COVPLANID,
B.FIRM_NAME FIRMNAME,
B.PRIMARY_ZIP_CD ZIP,
A.PRODUCR_CD PRODUCERCD,
A.PRODUCR_NAME PRODUCER,
H.COV_NAME COVDESP,
C.SALE_OFFC_CD SALEOFFCCD,
C.USR_OFFC_NAME USROFFC,
C.USR_NAME USR,
C.USR_REP_CD USRREPCD,
to_char((SELECT TO_CHAR(COUNT(EMP_NBR)) COUNT FROM ROSTR_DATA WHERE ROSTR_ID = F.ROSTR_ID)) AS count,
TO_CHAR(B.SIC_CD) SICCD,
F.INDSTRY_TYPE_IND INDTYPEIND,
TO_CHAR(F.MANL_SIC_FCTR_NBR) MANSICFACTOR,
TO_CHAR(F.UW_OVERD_SIC_FCTR_NBR) UWOVERDSICFACTOR,
TO_CHAR(G.AREA_FCTR_NBR) STRAREAFACTOR,
G.COV_ID COVID,
F.PLAN_APPRVL_STATUS_CD PLANAPPRVLCD,
F.PLAN_PROGRS_STATUS_CD PLANPROGRESSSTATUSCD ,
F.PLAN_SALE_ASSMNT_CD PLANSALEASSMTCD,
F.CREATD_DT CREATEDDT,
NVL(to_char(F.PLAN_RELSED_DT),' ') PLANRELSEDDT,
TO_CHAR(F.PLAN_RELSED_BY_ID) PLANRELSEDBYID,
TO_CHAR(F.PROPOSD_EFF_DT) PROPOSDEFFECTIVEDT,
TO_CHAR(A.GRACE_PERIOD_NBR) GRACEPERIOD,
A.RNWL_15_MONTH_IND FIFTEENMONTHRNWLIND ,
I.CO_DESC_TXT COMPANYNAME ,
NVL(to_char(F.PLAN_APPRVL_DT),' ') approvedDt,
(Select U.USR_NAME from USR_DETL U WHERE U.USR_ID = F.PLAN_RELSED_BY_ID) as planRelsedByName,
(Select U.USR_NAME from USR_DETL U WHERE U.USR_ID = F.PLAN_APPRVR_ID) as approvedByName,
'' createdByName,
ROWNUM rnum
FROM
REQ_FOR_RATING A,
FIRM B,
USR_DETL C,
SALE_OFFICE D,
QUOTE_SCENRIO E,
QUOTE_COV G,
COV_PLAN F,
COV_LKUP H,
CO_LKUP I
WHERE
A.FIRM_ID = B.FIRM_ID AND
A.SALE_REP_ID = C.USR_ID AND
C.SALE_OFFC_CD = D.SALE_OFFC_CD AND
A.REQ_FOR_RATING_ID=E.REQ_FOR_RATING_ID AND
E.QUOTE_SCENRIO_ID=G.QUOTE_SCENRIO_ID AND
G.QUOTE_COV_ID=F.QUOTE_COV_ID AND
G.COV_ID=H.COV_ID AND
I.CO_CD = F.CO_CD AND
TO_CHAR(F.CREATD_DT,'YYYYMMDD') > TO_CHAR(TO_DATE('07/16/2007', 'MM/DD/YYYY HH24:MI:SS'),'YYYYMMDD') AND
TO_CHAR(F.CREATD_DT,'YYYYMMDD') < TO_CHAR(TO_DATE('10/16/2007', 'MM/DD/YYYY HH24:MI:SS'),'YYYYMMDD')
and rownum <=?) where rnum >=? Parameters: [07/15/2007 00:00:00, 10/15/2007 23:59:59, 1117, 1]That's a SQL fault, not a JDBC/Java fault.
-
Java.sql.SQLexception: Invalid character encountered in: failAL32UTF8Conv
I have an Oracle 9i database set to use NLS_CHARACTERSET - AL32UTF8. This database is running on a LINUX server with LANG=en_US.UTF-8. The final piece is an application running on WebLogic. Until recently, I had no problems. Now I receive "invalid character" errors on the WebLogic console when trying to create users via the application using the letters f, o, and r. Does anyone know what direction to look in to resolve this problem? The JDBC driver should be using UTF-8 by default and I am not sure where else to look.
The exact error we are getting is:
java.sql.SQLexception: Invalid character encountered in: failAL32UTF8Conv
I noticed on this forum someone else who had this problem was told to update to the latest Oracle thin driver. We are already using the latest ojdbc14.zip. Do you have any suggestions beyond that?
FYI - We are running BEA WebLogic Server 8.1.Fee fee wrote:
I encounter the following error while I establish connection with my Oracle 9.2.0.1.0
DB server. DB is now using ATL32UTF8 and national character as UTF16.
I see somebody encounter this error before. Any idea ???Hi. You should download and use Oracle's latest thin driver, as opposed to the
driver we ship with our product. The shipped one was the best there was at the time
but oracle has since fixed other bugs, and this may be one.
Joe
>
>
Cheers,
Feefee
DriverManager.initialize: jdbc.drivers = null
JDBC DriverManager initialized
registerDriver: driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@22926e]
DriverManager.getDriver("jdbc:oracle:thin:@192.168.9.180:1521:cchs")
trying driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@22926e]
getDriver returning driver[className=oracle.jdbc.driver.OracleDriver,oracle.jdbc.driver.OracleDriver@22926e]
SQLException: SQLState(null) vendor code(17055)
java.sql.SQLException: Invalid character encountered in: failAL32UTF8Conv
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1130)
at oracle.jdbc.dbaccess.DBConversion.failAL32UTF8Conv(DBConversion.java:2762)
at oracle.jdbc.dbaccess.DBConversion.javaCharsToAL32UTF8Bytes(DBConversion.java:2678)
at oracle.jdbc.dbaccess.DBConversion.stringToAL32UTF8Bytes(DBConversion.java:2624)
at oracle.jdbc.dbaccess.DBConversion.stringToAccessCharBytes(DBConversion.java:391)
at oracle.jdbc.dbaccess.DBConversion.StringToCharBytes(DBConversion.java:456)
at oracle.jdbc.ttc7.O3log.setSessionFields(O3log.java:796)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:124)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:256) -
Use of NOT IN leads to an invalid column name error
The query works just fine when placed directly into sql plus
The query works, called from a Java using an Oracle Statement, ONLY IF I remove the NOT.
However, with NOT it chokes, and gives me this:
selQ=select lenum, zeugn from stock_rpt where lenum NOT in ('X12345', 'X23456')
Could Select or Read Selected data
java.sql.SQLException: Invalid column name
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3319)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1926)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515)
at ecspack.StockRpt.selRecsByQ(StockRpt.java:172)
at ecspack.StockRpt.selByDiff(StockRpt.java:261)
at teste.main(teste.java:40)
The column does have an index.
The above is my simplified test query, I am using to narrow down the problem.
SelQ is the value of the Select String.
Really I want to do something like this:
select x1, x2 from tableX where x1 NOT IN (select y1 from tableY)
I know I can just compare records one at a time, but I would rather not, if there is a way to make NOT IN work.
Thank youHi Eileen Keeney ,
may be you can use prepared statement but beware of sql injection
selQ=select lenum, zeugn from stock_rpt where lenum NOT in ('X12345', 'X23456')
Try :
selQ=select lenum, zeugn from stock_rpt where lenum NOT in (?, ?)
Then try running it with this fixed parameter binding:
prest.setString(1, "X12345");
prest.setString(2, "X23456"); -
How to get rid of java.sql.SQLException?
I get a error message while executing the SQL statement select * from person where person_ID =? in a web application.
error
java.sql.SQLException: The requested parameter metadata is not available for the current statement.
Thanks in advancei am using MySQL and NetBeans 5.5.1
when i am using the SQL statement which does not involve user input like
select * from travel
then there is no error and the program is working fine.
But when i use the statement like
select * from travel where = ?
the error is generated.
java.sql.SQLException: [DataDirect]The requested parameter metadata is not available for the current statement.
at com.ddtek.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.ddtek.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.ddtek.jdbc.base.BaseParameters.getParameterInfo(Unknown Source)
at com.ddtek.jdbc.base.BaseParameterMetaData.getParameterType(Unknown Source)
at org.netbeans.modules.sql.project.dbmodel.DBMetaData.getPrepStmtParameters(DBMetaData.java:1749)
at org.netbeans.modules.sql.project.dbmodel.DBMetaData.getPrepStmtMetaData(DBMetaData.java:698)
at org.netbeans.modules.sql.project.dbmodel.DBMetaData.getPrepStmtMetaData(DBMetaData.java:733)
at org.netbeans.modules.sql.project.anttasks.WSDLGenerator.generateInsertSchemaElements(WSDLGenerator.java:690)
at org.netbeans.modules.sql.project.anttasks.WSDLGenerator.modifyMessageTypes(WSDLGenerator.java:401)
at org.netbeans.modules.sql.project.anttasks.WSDLGenerator.modifyWSDL(WSDLGenerator.java:326)
at org.netbeans.modules.sql.project.anttasks.WSDLGenerator.generateWSDL(WSDLGenerator.java:294)
at org.netbeans.modules.sql.project.anttasks.GenerateWSDL.execute(GenerateWSDL.java:176)
at org. customer .tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org. customer .tools.ant.Task.perform(Task.java:364)
at org. customer .tools.ant.Target.execute(Target.java:341)
at org. customer .tools.ant.Target.performTasks(Target.java:369)
at org. customer.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org. customer .tools.ant.Project.executeTarget(Project.java:1185)
at org. customer .tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
at org. customer .tools.ant.Project.executeTargets(Project.java:1068)
at org. customer .tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:240)
at org. customer .tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:293)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:131) -
How to use todate function in JDBC adapter
Hi All,
How can we use the todate function to update a date field in Oracle database. I am getting a
java.sql.SQLException: ORA-01858: a non-numeric character was found where a numeric was expected
Exception, when I am mapping the date fields with to_date('03/28/2009 18/43/19','MM/DD/YYYY HH24/MI/SS').
Thanks,
YomeshThe following is standard SAP document regarding this attribute, this attribute used to compose your SQL clause for string or non-string, for string, you need to put the "YES". in your case, you need to set set the value "NO"
so create an attribute, pass a constant value "NO" to it, that is it.
hasQuot= YES|NO During construction of the WHERE condition of the SQL statement, the table column type determines whether the default is to set the values in quotation marks (text column types) or not (numerical column types). In a few cases (for example, when using functions), it may be necessary to override this. This attribute enables you to do this. If YES, quotation marks are always set round the values for which this attribute is set in the SQL syntax. If NO, quotation marks are never set. Only use this attribute in individual cases.
Regards.
Liang -
How to use bind variables in the following query
CREATE OR REPLACE PROCEDURE MMDB.test IS
sel_qtn VARCHAR2 (10);
CURSOR PT_QUANTITY IS select * from mmdb.product_tree WHERE QUANTITY_CHECK ='E'
AND run_id = 100
a PT_QUANTITY%ROWTYPE;
BEGIN
FOR i IN PT_QUANTITY
loop
sel_qtn := i.quanttity-1;
While sel_qtn>=1
loop
insert into mmdb.product_tree (BILLING_ACCOUNT_NO ,S_CODE) values (i.BILLING_ACCOUNT_NO ,i.S_CODE||'E');
sel_qtn :=sel_qtn -1;
End loop;
commit;
end;Don't duplicate threads: How to use bind variables in the following query
-
How to use bind variables in this procedure
Hi Experts,
How to use bind variables in this procedure for static queries.
PROCEDURE DELETE_MER_PROC (M_id IN NUMBER)
IS
BEGIN
V_date DATE;
SELECT PD_DATE INTO v_date FROM PD_MAINTAIN;
DELETE FROM MER_CLEAR
WHERE MER_DT < v_date
AND ID = M_ID;
COMMIT;
END;
How to use v_date and m_id as bind variables in this procedure to avoid hard parsing.
Please help me.
Thanks.976208 wrote:
How to use v_date and m_id as bind variables in this procedure to avoid hard parsing.
You cannot avoid hard parsing - as the 1st time a SQL statement (like the SELECT or DELETE statements in your code) is encountered, it does not reside in the server's Shared Pool, and needs to be added into the pool via a hard parse.
Bind variables does not prevent hard parsing. Hard parsing happens when the SQL statement (with or without bind variables) is a brand new statement encountered by the server.
Bind variables enables the same SQL cursor to be reused, by simply changing the bind variable value.
Not using bind variables means that each SQL statement is unique and not shareable - as the value is hardcoded into the statement and cannot be changed via a bind value. This typically means LOTS of different SQL statements (where the only difference is the changed value in the statement) are created - with each statement being a new statement not seen before in the Shared Pool and needing to be hard parsed.
One does not design one's code not to be hard parsed. There ALWAYS will be a hard parse in order to get a SQL statement into the Shared Pool. One designs one's code to REUSE cursors in the Shared Pool. -
How to use 45W MagSafe 2 Power Adapter with cable management MagSafe 2 power port macbook air 2013
How to use 45W MagSafe 2 Power Adapter with cable management MagSafe 2 power port macbook air 2013 there's two plugs do I use both for the safety to work or I just one ? Thanks sorry new macbook air 2013 was given to my daughter fir her 18th bday 2 days ago by my brother
No, the one is just an extension cord, just use the 45W charger with its attached thin cord and connect the magnetic magsafe to to the connector on the back left of the macbook Air for use and charging it
-
How to use escape character in update statement.
Hi All,
I'm trying to update table using following sql update statement, but everytime it's asking me for the input due to the '&' value in below sql.
UPDATE xyz_xyz
SET NAME = 'ABC & PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C & PQR');Please let me know how to use escape character syntax or let me know if there is any alternative solution.
Thanks,
VishwasHi,
By default, & marks a substitution variable name.
If you're not using substitution variables in that statement (or, if this is in PL/SQL, in that entire package or procedure) then the easiest thing to do is just diable substitution variables; then & will be a normal character:
SELECT DEFINE OFF
UPDATE xyz_xyz
SET NAME = 'ABC & PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C & PQR');
SET DEFINE ONIf you can't do that, then & is always taken literally if it comes right before a single-quote, so you could say:
UPDATE xyz_xyz
SET NAME = 'ABC &' || ' PQR'
WHERE ID = (SELECT ID
FROM abc_abc
WHERE NAME = 'C &' || ' PQR');There is a SQL*Plus "SET ESCAPE" command, too, but if you use it, you have to worry about whether the escape character is to be taken literally or not.
SET ESCAPE \Yet another alternative is to make some other character, such as ~, mark the substitution variables:
SET DEFINE ~Read all about them in the SQL*Plus manual.
http://download.oracle.com/docs/cd/B28359_01/server.111/b31189/ch2.htm#sthref103 -
i'm using flash cs5.5 . i have a problem with bind tool. how to use it.i'm trying lot of times, but i can't find how to use bind tool.please any can help me with a helpful answer.
Hi Sampath,
Please use this Help article to learn how to use Bind Tool.
http://help.adobe.com/en_US/flash/cs/using/WS58BD3A02-DA25-488f-B534-AE5463A24833.html
Please let me know if you would need more help.
Thanks,
Suhas Yogin -
How to use Bind Variables in Essbase data control
Hi,
I am trying to use Bind Variables in MDX query while creating the Essbase Data Control. I have used the below query with the Bind Variable.. this query is working in Essbase admin console..but it is throwing error (*Invalid MDX Query)* while creating Essbase Datacontrol in JDeveloper.
MDX Query : SELECT {[Measures].Msr_2} ON COLUMNS, [Time].Children ON ROWS FROM cube
where ($name)
Could any body suggest me on how to use bind variables with Essbase Data control.
Thanks,
SwathiHello Swathi, can you please help me how you created Essbase DataControl? Also were you able to figure out this?
Thanks, Praveen. -
Hi,
I have the below cursor 1 which is working already.For my requirement i want to use bind variable like second cursor.But its telling Bind Variable "p_col_list" is NOT DECLARED.Please any onehelp me on this.
How to use bind variable Here.
Cursor1:
DECLARE
emp_cv sys_refcursor;
iid NUMBER := 1;
i_sql varchar2(100);
p_col_list varchar2(2000) := 'aaa,bbb,ccc,ddd';
BEGIN
i_sql := 'select '''||REPLACE(p_col_list, ',', ''',''')||''' from dual '||CHR(10) ;
dbms_output.put_line(i_sql);
OPEN emp_cv FOR i_sql ;
END;
Cursor2:
DECLARE
emp_cv sys_refcursor;
iid NUMBER := 1;
i_sql varchar2(100);
p_col_list varchar2(2000) := 'aaa,bbb,ccc,ddd';
BEGIN
i_sql := 'select '''||REPLACE(:p_col_list, ',', ''',''')||''' from dual '||CHR(10) ;
dbms_output.put_line(i_sql);
OPEN emp_cv FOR i_sql using p_col_list;
END;hello,
the reports parameterform capabilities are limited. if you want
to create sophisticated parameterforms, you should do that with
oracle forms or html forms.
regards,
the oracle reports team --pw -
How to use bind parameter in view object
in my view object has parameter as below
where :organization_id IS NULL
:organization_id parameter get value from LOV
I can run the page but it show following error :
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT hou.name organization_name
,hapf.name position_name
,hapf.attribute1 position_fund
,pg.name grade_name
,pbd.budget_detail_id
,hapf.position_id
,pbd.budget_version_id pbd_budget_version_id
,pbv.budget_version_id pbv_budget_version_id
,'Y' VIEW_DETAIL
,'Y' VIEW_DETAIL_OCC
,greatest(hapf.effective_start_date, pbv.date_from) effective_date
FROM pqh_budget_details pbd
,hr_all_positions_f hapf
,hr_all_organization_units hou
,per_grades pg
,pqh_budget_versions pbv
WHERE pbd.budget_version_id = pbv.budget_version_id
AND pbd.position_id = hapf.position_id
AND hapf.effective_end_date = hr_general.end_of_time
AND hou.organization_id = hapf.organization_id
AND pg.grade_id = hapf.entry_grade_id
AND EXISTS (
SELECT 'X'
FROM hr_all_positions_f hapf1
WHERE hapf1.position_id = hapf.position_id
AND hapf1.availability_status_id = 1
AND (pbv.date_from BETWEEN hapf1.effective_Start_date AND hapf1.effective_end_date
OR
hapf1.effective_Start_date BETWEEN pbv.date_from AND pbv.date_to))
and :gl_organization = 10)
## Detail 0 ##
java.sql.SQLException: ORA-01008: not all variables bound
Thank you very muchIs it a seeded view or a custom view? Ideally, in OAF you do parameter binding in the style
organization_id = :1
Also make sure to call setWhereClauseParams(null) on your view object before going for binding.
--Shiv
Maybe you are looking for
-
Dear All, I hope someone can help me here with EPM 11.1.2.1 installation problem on my notebook - Windows Server 2008 R2 x65, 8 GB RAM, running SQLServer 2008 Express. I installed Hyperion Foundation. The installation and configuration went through s
-
The http://www.k12.com/ website gives me this message when I attempt to log on I get this message "Browser Requirements: K12 requires web browsers to support certain features to ensure you don't experience unexpected errors Please follow the instruct
-
Hi I am getting below error : iphone64.msi not found when i try to install iTunes. I really appericiate any help or suggestion. thanks, Cholate
-
5800 won't connect to internet - help!
My 5800XM has stopped connecting to the internet. If I go to, say the Ovi Store, I get the frot page, but instead of going to the Store, it returns to the previous screen. The same happens with other websites, too. The phone usually asks how I wis
-
AOA ALL Dear i want to convert a numeric value for eg:'1000' into words that is 'ONE THOUSAND' in a report.does any body knows a method or function for that available in developer or any other way... do tell me thx