Query on Strings
Hi Guys,
I have a Internal Table which is of type string.
After filling My Internal Table has 2 records like below
Details(This is Fieldname in my Internal Table)
1.xxx,yyy,zzz,abc,123,456,Etc.............,
2.abd,134,Etc..............
When I am debugging this I am able to see upto xxx,yy
How to check the full content ,bcoz I need to know whether full data is present or not.
Thanks,
Prasad.
In the debugging mode open your internal table "details" and press Ctrl+F11 your internal table get exported to excel
a®
Similar Messages
-
QBE Error when query by String for Number column
Hi,
I have a table with Number column.
The column structure is like below:
<af:column>
<af:inputText>
<f:validator .../>
<af:converNumber ..../>
</af:inputtext>
</af:column>
QBE is enabled for this column.
It works fine when query by Number value, such as '123'. But when I query by string like 'asd', it will return an error.
Anyone met this problem?Hi Arun,
I am using Jdev 11.1.1.7.0.
In my case,
I have a application table, from where user can create new row inline. Some fields in the row have type Long or Number. We are also using <af:converNumber ..../> inside <af:inputText> to do format.
I do have a query panel above the table. But we want the user can also filter the records using QBE. Other columns are working fine, except the columns with type 'Number' or 'Long'.
I checked the incident log, below are some useful information:
Caused by: java.sql.SQLSyntaxErrorException: ORA-01722: invalid number
Caused by: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT ... FROM ... WHERE ... AND ( ( (MeaRulesEO.DEFAULT_MEA_PERIOD = :vc_temp_1 ) ) )
It seems 'MeaRulesEO.DEFAULT_MEA_PERIOD = :vc_temp_1' causes the error. Jdev assumes every input from QBE header as number. If String is entered, Jdev will return error.
I also checked that if the table is read-only, this problem does not exist.
Please help on this. Thank you. -
How to retrieve a SQL query (in String format) from a PreparedStatement
Hello all,
I am in the process of unit testing an application accessing a Oracle 9i 9.2 RDBMS server with JDBC.
My query is:
As I have access to PreparedStatement and CallableStatement Java objets but not to the source queries which help create those objects?
Is thtere a simple way by using an API, to retrieve the SQL command (with possible ? as placeholders for parameters).
I have already looked at the API documentation for those two objets (and for the Statement and ResultSetmetaData objects too) but to no avail.
Thank you for any help on this issue,
Best regards,
BenoîtSorry for having wasted your time... and for not understanding what you meant in your first reply.
But the codlet was only to show the main idea:
Here is the code which compiles OK for this approach to reach its intended goal:
main class (file TestSuiteClass.java):
import java.sql.*;
import static java.lang.Class.*;
* Created by IntelliJ IDEA.
* User: bgilon
* Date: 15/03/12
* Time: 10:05
* To change this template use File | Settings | File Templates.
public class TestSuiteClass {
public static void main(final String[] args) throws Exception {
// Class.forName("oracle.jdbc.OracleDriver");
final Connection mconn= new mConnection(
DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@host:port:service"));
* final Statement lstmt= TestedClass.TestedMethod(mconn, ...);
* final String SqlSrc= mconn.getSqlSrc(lstmt).toUpperCase(), SqlTypedReq= mconn.getTypReq(lstmt);
* assertEquals("test 1", "UPDATE IZ_PD SET FIELD1= ? WHERE FIELDPK= ?", SqlSrc);
Proxy class (file mConnector.java):
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
* Created by IntelliJ IDEA.
* User: bgilon
* Date: 15/03/12
* Time: 10:05
* To change this template use File | Settings | File Templates.
* This file should be compiled with JDK 1.6, but can be used with previous JDK versions.
* See OKwith1pN booleans usage for not throwing Exceptions as Unknown methods by the conn object...
public final class mConnection implements Connection {
private final Connection conn;
private final List<Statement> Stmts= new ArrayList<Statement>();
private final List<String> SqlSrcs= new ArrayList<String>();
private final List<Integer> TypSrcs= new ArrayList<Integer>();
private final static String jvmv= System.getProperty("java.specification.version");
private static final boolean OKwith1p2;
private static final boolean OKwith1p4; /* OKwith1p5, */
private static final boolean OKwith1p6;
static {
/* jvmv= System.getProperty("java.version");
System.out.println("jvmv = " + jvmv);
jvmv= System.getProperty("java.vm.version");
System.out.println("jvmv = " + jvmv); */
System.out.println("jvmv = " + jvmv);
OKwith1p2= (jvmv.compareTo("1.2") >= 0);
OKwith1p4= (jvmv.compareTo("1.4") >= 0);
// OKwith1p5= (jvmv.compareTo("1.5") >= 0);
OKwith1p6= (jvmv.compareTo("1.6") >= 0);
public String getSqlSrc(final Statement pstmt) {
int ix= 0;
for(Statement stmt : this.Stmts) {
if(stmt == pstmt) return SqlSrcs.get(ix);
ix+= 1;
return null;
static private final String[] TypeNames= new String[] { "Statement", "PreparedStatement", "CallableStatement" };
public String getTypReq(final Statement pstmt) {
int ix= 0;
for(Statement stmt : this.Stmts) {
if(stmt == pstmt) return TypeNames[TypSrcs.get(ix)];
ix+= 1;
return null;
private void storedStatement(
final Statement stmt,
final String sqlSrc,
final Integer typReq
Stmts.add(stmt);
SqlSrcs.add(sqlSrc);
TypSrcs.add(typReq);
public Connection getDecoratedConn() {
return conn;
mConnection(final Connection pconn) {
this.conn= pconn;
public boolean isClosed() throws SQLException {
return conn.isClosed();
public void rollback(Savepoint savepoint) throws SQLException {
if(OKwith1p4) conn.rollback(savepoint);
public boolean isReadOnly() throws SQLException {
return conn.isReadOnly();
public int getTransactionIsolation() throws SQLException {
return conn.getTransactionIsolation();
public void setTransactionIsolation(int level)throws SQLException {
conn.setTransactionIsolation(level);
public Properties getClientInfo() throws SQLException {
return OKwith1p6 ? conn.getClientInfo() : null;
public <T> T unwrap(Class<T> iface)
throws SQLException {
return conn.unwrap(iface);
public void setAutoCommit(boolean auto) throws SQLException {
conn.setAutoCommit(auto);
public boolean getAutoCommit() throws SQLException {
return conn.getAutoCommit();
public Map<String,Class<?>> getTypeMap() throws SQLException {
if(!OKwith1p2) return null;
return conn.getTypeMap();
public void setTypeMap(Map<String,Class<?>> map) throws SQLException {
if(!OKwith1p2) return;
conn.setTypeMap(map);
public void setHoldability(final int holdability) throws SQLException {
if(OKwith1p4) conn.setHoldability(holdability);
public Struct createStruct(String typeName, Object[] attributes) throws SQLException {
return conn.createStruct(typeName, attributes);
public void commit() throws SQLException {
conn.commit();
public void rollback() throws SQLException {
conn.rollback();
public boolean isValid(int timeout) throws SQLException {
return OKwith1p6 && conn.isValid(timeout);
public void clearWarnings() throws SQLException {
conn.clearWarnings();
public int getHoldability() throws SQLException {
if(!OKwith1p4) return -1;
return conn.getHoldability();
public Statement createStatement() throws SQLException {
return conn.createStatement();
public PreparedStatement prepareStatement(final String SqlSrc) throws SQLException {
if(!OKwith1p2) return null;
final PreparedStatement lstmt= conn.prepareStatement(SqlSrc);
storedStatement(lstmt, SqlSrc, 1);
return lstmt;
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
if(!OKwith1p4) return null;
final PreparedStatement lstmt= conn.prepareStatement(sql, columnNames);
storedStatement(lstmt, sql, 1);
return lstmt;
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
final PreparedStatement lstmt= conn.prepareStatement(sql, resultSetType, resultSetConcurrency);
storedStatement(lstmt, sql, 1);
return lstmt;
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
final PreparedStatement lstmt= conn.prepareStatement(sql, columnIndexes);
storedStatement(lstmt, sql, 1);
return lstmt;
public void setClientInfo(String name, String value) throws SQLClientInfoException {
if(OKwith1p6)
conn.setClientInfo(name, value);
public PreparedStatement prepareStatement(final String SqlSrc,
int resultType,
int resultSetCurrency,
int resultSetHoldability) throws SQLException {
final PreparedStatement lstmt= conn.prepareStatement(SqlSrc, resultType, resultSetCurrency);
storedStatement(lstmt, SqlSrc, 1);
return lstmt;
public PreparedStatement prepareStatement(final String SqlSrc,
int autogeneratedkeys) throws SQLException {
if(!OKwith1p4) return null;
final PreparedStatement lstmt= conn.prepareStatement(SqlSrc, autogeneratedkeys);
storedStatement(lstmt, SqlSrc, 1);
return lstmt;
public CallableStatement prepareCall(final String SqlSrc) throws SQLException {
final CallableStatement lstmt= conn.prepareCall(SqlSrc);
storedStatement(lstmt, SqlSrc, 2);
return lstmt;
public CallableStatement prepareCall(final String SqlSrc,
int resultType,
int resultSetCurrency,
int resultSetHoldability) throws SQLException {
if(!OKwith1p4) return null;
final CallableStatement lstmt= conn.prepareCall(SqlSrc, resultType, resultSetCurrency, resultSetHoldability);
storedStatement(lstmt, SqlSrc, 2);
return lstmt;
public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
return OKwith1p6 ? conn.createArrayOf(typeName, elements) : null;
public CallableStatement prepareCall(final String SqlSrc,
int resultType,
int resultSetCurrency) throws SQLException {
if (!OKwith1p2) return null;
final CallableStatement lstmt= conn.prepareCall(SqlSrc, resultType, resultSetCurrency);
storedStatement(lstmt, SqlSrc, 2);
return lstmt;
public SQLXML createSQLXML() throws SQLException {
return OKwith1p6 ? conn.createSQLXML() : null;
public DatabaseMetaData getMetaData() throws SQLException {
return conn.getMetaData();
public String getCatalog() throws SQLException {
return conn.getCatalog();
public void setCatalog(final String str) throws SQLException {
conn.setCatalog(str);
public void setReadOnly(final boolean readonly) throws SQLException {
conn.setReadOnly(readonly);
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return conn.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
if(!OKwith1p2) return null;
return conn.createStatement(resultSetType, resultSetConcurrency);
public String nativeSQL(final String sql) throws SQLException {
return conn.nativeSQL(sql);
public void releaseSavepoint(Savepoint savepoint) throws SQLException {
if(OKwith1p4) conn.releaseSavepoint(savepoint);
public Savepoint setSavepoint() throws SQLException {
return OKwith1p4 ? conn.setSavepoint() : null;
public Savepoint setSavepoint(final String str) throws SQLException {
return OKwith1p4 ? conn.setSavepoint(str) : null;
public boolean isWrapperFor(Class iface) throws SQLException {
return conn.isWrapperFor(iface);
public String getClientInfo(final String str) throws SQLException {
return OKwith1p6 ? conn.getClientInfo(str) : null;
public void setClientInfo(final Properties pro) throws SQLClientInfoException {
if (OKwith1p6) conn.setClientInfo(pro);
public Blob createBlob() throws SQLException {
return OKwith1p6 ? conn.createBlob() : null;
public Clob createClob() throws SQLException {
return OKwith1p6 ? conn.createClob() : null;
public NClob createNClob() throws SQLException {
return OKwith1p6 ? conn.createNClob() : null;
public SQLWarning getWarnings() throws SQLException {
return conn.getWarnings();
public void close() throws SQLException {
conn.close();
Final word:
The final word about this is: there is currently three ways to obtain source SQL queries from compiled statement objects.
a) Use a proxy class the mConnector above;
b) Use a proxy JDBC driver as Log4JDBC;
c) Use the trace facility of the driver (however, post analyzing the logs would depend upon the driver selected).
Thank you for reading,
Benoît -
Dear forum members,
Is it possible to execute a query from a string like this:
DECLARE
thishere VARCHAR2;
BEGIN
f:='from iv_view_cqir_sum where 1=1 ';
select sum(a) into thishere [...];
END;The [...] should be taken from the string f...
Any comments welcome!
Cheers,
JohannYou can do it in this way:
SQL> create table test1(id number);
Table created.
SQL> insert into test1 values(1);
1 row created.
SQL> insert into test1 values(2);
1 row created.
SQL> DECLARE
v_var VARCHAR2 (10) := 'where id=1';
v_count NUMBER;
BEGIN
EXECUTE IMMEDIATE 'select count(1) from test1 ' || v_var
INTO v_count;
DBMS_OUTPUT.put_line (v_count);
END;
1- - - - - - - - - - - - - - - - - - - - -
Kamran Agayev A. (10g OCP)
http://kamranagayev.wordpress.com -
Please Help: query matching string value in WHERE clause
Hi Everyone,
I am trying to query customers that has matching first and last name but, I am getting result of every customer that has first and last name. Here is what my query looks like:
SELECT * FROM CUSTOMERS WHERE
CUSTOMER_FNAME IN
'JOHN', 'MIKE'
AND CUSTOMER_LNAME IN
'DOE', 'MILLER'
); I am trying to query customer name that is JOHN DOE and MIKE MILLER but, i get result of all names that has the first/last names not exact match. Is there way i can do that get exact match?
Thanks,
SMFrank Kulash wrote:
Hi,
chris227 wrote:
SMCR wrote:
Thanks everyone for your help!
There are two correct answers, I am using following:I just see one, it's Franks.If fname never contains a '~' (or if lname never contains a '~") then
{code}
where fname||'~'||lname in ('JOHN~DOE', 'MIKE~MILLER');
{code}
will work.Yes, I realized that. For the purpose i am using i will not have any issue with '~'
I did however changed it up a little, here is how it looks like:
{code}
SELECT CUSTOMER_ID, CUSTOMER_FNAME, CUSTOMER_LNAME, DATE_OF_BIRTH
FROM CUSTOMERS
WHERE (CUSTOMER_FNAME||'~'||CUSTOMER_LNAME, DATE_OF_BIRTH) IN
(('JOHN~DOE'), (TO_DATE('20130101', 'YYYYMMDD'))),
(('MIKE~MILLER'), (TO_DATE('20130101', 'YYYYMMDD')))
{code} -
Query on Strings in point of memory..?
Can any one explain the below code clearly in point of memory?
String A = new String("abc"); // 1. How many objects are created here?
String B = "def"; //2. How many objects here?
A = A + B; // Here Value of A is 'abcdef'.
As we know String objects are immutable. The value of A is visible here 'abcdef' why cannt only 'abc'. Here reference of A was changed but how can we prove here the value of A is same at any time..? Plz explain clearly.String A = new String("abc"); // 1. How manyobjects
are created here?One.
I heard that in above statement two objects are
created. this is one in String Constant Pool and
anothe is in Heap memory. Is it right?
If not wht is the use of String Constant Pool? If it
is right why String Objects are create in Heap as
well as String Constant Pool?I think it's correct that "abc" is placed in contant pool, and that new String creates yet another object.
You can verify that a string is immutable by executing the following code.
String a = "abc";
String tmp = a;
String a = a.concat("def");
System.out.println(a);
System.out.println(tmp);Kaj -
Refcursor with query as string
Hi,
Is there any performance difference when creating reference sursor with select statement as string.
Case 1:
Declare
p_Result IN OUT SYS_REFCURSOR,
v_Sqlstr VARCHAR2(4000);
begin
v_Sqlstr := 'select * from emp';
OPEN p_Result FOR v_Sqlstr;
end;
Case 2:
Declare
p_Result IN OUT SYS_REFCURSOR,
begin
OPEN p_Result FOR select * from emp;
end;
Is there any performance difference between the above cases.
Thanks in advance
RizlyHandle: RizlyFaisal
Status Level: Newbie
Registered: Mar 21, 2007
Total Posts: 175
Total Questions: 32 *(29 unresolved)*
Name Rizly
No -
Hi, I am using a prepared statement and how can I perform string matching using that?
For example, I have
PreparedStatement pstat = con.prepareStatement( new String(sql))
what should my sql String look like to query for strings containing "ab"
so when the executeQuery() is called,
I get results such as "abcd", "abcdcdc","ccccabccc"??
Thanks a lot,try somethink like this:
SELECT * FROM table_name WHERE column_name LIKE
'%ab%'
or
SELECT * FROM table_name WHERE column_name LIKE ?
providing "%ab%" as parameterAdding to that - you MUST do the % yourself and then use setString. The following will NOT work....
SELECT * FROM table_name WHERE column_name LIKE '%?%' -
FS - Error code 3006 from SQL-Query
Hello world!
Can someone inform me which possible errors in a query cause the following error message after the query is activated?
Internal Error (3006) Message [131-183]
Until now I had only error code 1003, which signals syntax errors etc. in the query.
By the way: Does anywhere exists a list of error codes/messages occuring in SAP B1?
Thank you!
Frank RomeniError codes and their description can be found in SDK help files
I have pasted them below for your ref
-39
End of File
-43
File not Found
-47
File is Busy
-50
File Cannot Open
-51
File Corrupted
-99
Division by Zero
-100
Out of Memory
-101
Print Error
-103
Print Canceled
-104
Money Overflow
-111
Invalid Memory Access
-199
General Error
-213
Bad Directory
-214
File Already Exists
-216
Invalid File Permission
-217
Invalid Path
-1001
Data Source - Bad Column Type
-1003
Data Source - Alias Not Found
-1004
Data Source - Value Not Found
-1005
Data Source - Bad Date
-1012
Data Source - No Default Column
-1013
Data Source - Zero/Blank Value
-1015
Data Source - Integer Overflow
-1016
Data Source - Bad Value
-1022
Data Source - Other File Not Related
-1023
Data Source - Other Key Not In Main Key
-1025
Data Source - Array Record Not Found
-1027
Data Source - Value Must Be Positive
-1028
Data Source - Value Must Be Negative
-1029
Data Source - Column Cannot be updated
-1100
Data Source - Cannot Allocate Environment
-1101
Data Source - Bad Connection
-1102
Data Source - Connection Not Opened
-1103
Data Source - DB Already Exists
-1104
Data Source - Cannot Create Database
-1200
Data Source - Data Bind General Error
-2001
Data Source - Bad Parameters
-2003
Data Source - Too Many Tables
-2004
Data Source - Table Not Found
-2006
Data Source - Bad Table Definition
-2007
Data Source - Bad Data Source
-2010
Data Source - Bad Data Source Offset
-2013
Data Source - No Fields In Table
-2014
Data Source - Bad Field Index
-2015
Data Source - Bad Index Number
-2017
Data Source - Bad Alias
-2020
Data Source - Bad Alias
-2022
Data Source - Bad Field Level
-2024
Data Source - Not Matching Data Source
-2025
Data Source - No Keys In Table
-2027
Data Source - Partial Data Found
-2028
Data Source - No Data Found
-2029
Data Source - No Matching Field
-2035
Data Source - Duplicate Keys
-2038
Data Source - Record Lock
-2039
Data Source - Data Was Changed
-2045
Data Source - End of Sort
-2049
Data Source - Not Opened for Write
-2056
Data Source - No Matching With Current Data Source
-2062
Data Source - Bad Container Offset
-3001
Query - Field Not Found
-3003
Query - Bad Data Source
-3004
Query - Bad Token
-3005
Query - Token After End
-3006
Query - Unexpected End
-3008
Query - Too Long Query
-3009
Query - Extra Right Parenthesis
-3010
Query - Missing Right Parenthesis
-3012
Query - No Operation Code
-3013
Query - No Field In Comparison
-3014
Query - Bad Condition
-3015
Query - Bad Sort List
-3017
Query - No String
-3018
Query - Too Many Fields
-3019
Query - Too Many Indexes
-3020
Query - Too Many Tables
-3021
Query - Reference Not Found
-3022
Query - Bad Range Set
-3023
Query - Bad Parsing
-3025
Query - Data Bind is Missing
-3026
Query - Bad Input
-3027
Query - Progress Aborted
-3028
Query - Bad Table Index
-3032
Query - General Failure
-3033
Query - Empty Record
-3036
Query - Bad Parameter
-3037
Query - Missing Table in List
-3040
Query - Bad Operation
-3041
Query - Bad Expression
-3042
Query - Name Already Exists
-3044
Query - Time Expired
3001
Form - Is Not Initialized
3002
Form - Bad Data Source
3003
Form - Exceeded Data Sources Limit
3006
Form - Invalid Form Item
3007
Form - Exceeded Forms Limit
3009
Form - Too Many Saved Data
3012
Form - Invalid Form
3015
Form - Cannot Get Multi-Line Edit
3016
Form - Bad Item Type
3017
Form - Bad Parameter
3023
Form - No Message Callback
3029
Form - Item Is Not Selectable
3031
Form - Bad Value
3033
Form - Item Not Found
4007
Grid - Invalid
4008
Grid - Bad Size
4009
Grid - No Data
4011
Grid - Invalid Parameters
4013
Grid - Not Super Title
4014
Grid - Super Title 2 Exits
4015
Bad Item Unique ID
4016
Grid - Bad Data
4017
Grid - Column is Already Folded
4018
Grid - Column is Already Expanded
4019
Grid - Line Exists
4020
Grid - Not Enough Data
4022
Grid - Super Title Exists
4027
Grid - Row Is Not Collapsible
8004
Status Bar - No Such Info
8005
Status Bar - Info Occupied
8006
Status Bar - No Message Bar
8007
Status Bar - Progress Stopped
8008
Status Bar - Too Many Progress
5001
Graph - Invalid
5002
Graph - Bad Form Item
5005
Graph - Bad Parameters
-7008
Form not found
-7000
Invalid Form
-7031
Form - Reserved /Illegal form Unique ID
-7032
Form - Invalid Mode
-7006
The item is not a user defined item and cannot be manipulated in such manner
-7005
Invalid table name
-7004
XML batch load failed
-7003
Menu operation Add failed
-7002
Function not supported
-7001
Invalid Item
-7034
Could not clear item in group
-7033
Out of boundaries
-7020
This method cannot be invoked by a Cell object
-7019
Invalid form unique ID. Should not begin with an F_ prefix
-7018
Invalid Field Value
-7017
Invalid Field Name
-7016
This datasource object is not a user-defined object
-7015
Invalid Column
-7014
A Column object with the specified unique ID already exists in the system.
-7013
The string value entered should be less then 10 characters.
-7012
An Item object with the specified unique ID already exists in the system.
-7011
The string value entered should be less then 11 characters.
-7010
A form with the requested unique ID already exists in the system.
-7009
The string value entered should be less the 32 characters.
-7040
Cannot Load XML File
-7051
Unexpected usage of the specified XML TAG.
-7050
This action type is not valid or not implemented yet.
-7043
Cannot load the Menu resource from the specified XML file.
-7042
Cannot load the Item resource from the specified XML file.
-7041
Cannot load the Form resource from the specified XML file.
-7071
Failed to create the items group.
-7070
UID
-7069
Failed to change the form current pane level.
-7068
Failed to change the form color.
-7067
Failed to change the Form mode.
-7066
Failed to fix the form default button.
-7065
Failed to change the form Visible state.
-7064
Could not change the form title.
-7063
The change of form dimensions has failed
-7062
Unknown Form attribute
-7061
XML batch resource update is not supported yet.
-7060
Reached Max Number of user data sources.
-7094
Failed to add the items child objects.
-7093
Failed to batch add the items
-7092
Failed to bind the item to the data source
-7091
Wrong Item Attribute
-7090
Unknown Field Type
-7114
Type of Column is Not Supported.
-7113
Failed to add the column child objects.
-7112
Failed to add the new columns.
-7111
Failed to bind the column to a data source
-7110
Invalid column attributes
-7133
The specified menu position is not valid
-7132
Invalid menu type
-7131
Failed to add the menu object
-7130
The specified menu already exists.
-7030
Invalid Row Number
-7029
Operation not supported on system form.
-7028
Out of boundary of DB data source offset.
-7027
The menu item is not a user defined menu item and cannot be manipulated in such manner.
-7026
Menu item was not found
-7025
Unknown Form State
-7024
Failed setting form bounds
-7023
Invalid Target
-7022
Could not commit action because the item is currently in focus.
-7021
Operation could not be set on extended edit text item.
-7200
Your connection string doesn't much UI development work mode.
-7201
The specified connection string is not valid. -
Using a date field in a JDOQL query crashes
Hello:
I am trying to use a date field in a JDOQL filter. It appears from the
log file that the date is not being substituted into the SQL.
It is not clear from the JDOQL spec how to do date queries.... doing date
queries in SQL involves several special operators, yet the
JDOQL defines the ">" and "<" operators as working on dates....and there is
no mention of date specific operators so I am hoping that I
can do a filter where I compare a date to an input parameter date using the
">" and "<" operators...
I have enclosed a copy of my driver code, followed by an except of my class
that contains the date, followed by the kodo exception log
I can't see where I am doing anything that violates the JDOQL spec and I
don't see any other way of doing date comparisions.
Brian
Here is the driver code that I am attempting:
public void getDateRange ()
PersistenceManager pm = JDOFactory.getPersistenceManager ();
String filter = "leafDates.contains (cdate) & cdate.statusName ==
myStatus & cdate.datePhaseStarted > myDate";
Date date = new Date ();
Calendar calendar = new GregorianCalendar (TimeZone.getDefault ());
calendar.set (2002, Calendar.DECEMBER, 26);
date=calendar.getTime();
Extent extent = pm.getExtent (LeafBase.class, false);
Query query = pm.newQuery (LeafBase.class, filter);
query.declareImports ("import aqueduct.*; import java.util.Date");
query.declareVariables ("aqueduct.LeafDate cdate; Date myDate");
query.declareParameters ("String myStatus");
System.out.println ("dated used = " + date);
Collection results = (Collection) query.execute ("closed", date);
Iterator iter = results.iterator ();
while (iter.hasNext () ) {
LeafBase myLeaf = (LeafBase) iter.next ();
System.out.println ("My leaf = " + myLeaf);
pm.close ();
Here is the class:
public class LeafDate implements Serializable
// *******The Attributes***************
private Date datePhaseStarted = null;
private boolean isEstimatedDate = false;
//mark this as non-persistent in the JDO metadata
private StatusType status = null;
//put here to enable one-to-many mapping using a single table in JDO
private LeafBase parent = null;
Here is the error I am getting:
C:\bcs\jdo\kodo-jdo-2.4.0\aqueduct>java aqueduct.DealMaint dated used = Thu
Dec 26 08:47:33 CST 2002
Exception in thread "main" javax.jdo.JDODataStoreException:
com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper:
[SQL=SELECT DISTINCT t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX,
t0.DEALPARENTX, t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAME FROM
JDO_DATE t1, JDO_LEAF t0 WHERE ((t1.STATUSNAME = 'closed' AND t1.DATESTARTED
*variable*) AND t0.ID = t1.PARENTX) PRE=SELECT DISTINCT t0.ID,
t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX, t0.DEALPARENTX, t0.PARENTX,
t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAME FROM JDO_DATE t1, JDO_LEAF t0 WHERE
((t1.STATUSNAME = ? AND t1.DATESTARTED > *variable*) AND t0.ID =
t1.PARENTX)
ORA-00936: missing expression
[code=936;state=42000]
NestedThrowables:com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper:
[SQL=SELECT DISTINCT t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX,
t0.DEALPA RENTX, t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAME FROM
JDO_DATE t1, JD O_LEAF t0 WHERE ((t1.STATUSNAME = 'closed' AND
t1.DATESTARTED > *variable*) AND t0.ID = t1.PARENTX)] [PRE=SELECT DISTINCT
t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX, t0.DEALPA RENTX,
t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAME FROM JDO_DATE t1, JD
O_LEAF t0 WHERE ((t1.STATUSNAME = ? AND t1.DATESTARTED > *variable*) AND
t0.ID = t1.PARENTX)]
ORA-00936: missing expression
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwDataStore(SQLExcep
tions.java:23)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
reManager.java:742)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
:92)
at com.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
at com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:623)
at aqueduct.DealMaint.getDateRange(DealMaint.java:523)
at
aqueduct.DealMaint.main(DealMaint.java:35)NestedThrowablesStackTrace:java.sq
l.SQLException:
ORA-00936: missing expression
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:643)
at
oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1819)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2015)
at
oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(Oracle
PreparedStatement.java:3021)
at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:416)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepareOh, thanks for pointing this out.... I got caught up in trying to figure out
the date issues, I missed the obvious.
Brian
"Patrick Linskey" <[email protected]> wrote in message
news:[email protected]...
Brian,
The problem is that you're declaring myDate as a variable instead of a
parameter. Yes, we should be doing better error checking. But that's the
problem.
So, change your declareVariables() and declareParameters() statements
accordingly, and all should work out.
-Patrick
Brian Smith wrote:
Here is the driver code that I am attempting:
public void getDateRange ()
PersistenceManager pm = JDOFactory.getPersistenceManager ();
String filter = "leafDates.contains (cdate) & cdate.statusName ==
myStatus & cdate.datePhaseStarted > myDate";
Date date = new Date ();
Calendar calendar = new GregorianCalendar (TimeZone.getDefault
>>
calendar.set (2002, Calendar.DECEMBER, 26);
date=calendar.getTime();
Extent extent = pm.getExtent (LeafBase.class, false);
Query query = pm.newQuery (LeafBase.class, filter);
query.declareImports ("import aqueduct.*; importjava.util.Date");
>>
query.declareVariables ("aqueduct.LeafDate cdate; Date myDate");
query.declareParameters ("String myStatus");
System.out.println ("dated used = " + date);
Collection results = (Collection) query.execute ("closed", date);
Iterator iter = results.iterator ();
while (iter.hasNext () ) {
LeafBase myLeaf = (LeafBase) iter.next ();
System.out.println ("My leaf = " + myLeaf);
pm.close ();
>
Here is the class:
public class LeafDate implements Serializable
// *******The Attributes***************
private Date datePhaseStarted = null;
private boolean isEstimatedDate = false;
//mark this as non-persistent in the JDO metadata
private StatusType status = null;
//put here to enable one-to-many mapping using a single table in JDO
private LeafBase parent = null;
>
Here is the error I am getting:
C:\bcs\jdo\kodo-jdo-2.4.0\aqueduct>java aqueduct.DealMaint dated used
= Thu
Dec 26 08:47:33 CST 2002
Exception in thread "main" javax.jdo.JDODataStoreException:
com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper:
[SQL=SELECT DISTINCT t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX,
t0.DEALPARENTX, t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAMEFROM> > JDO_DATE t1, JDO_LEAF t0 WHERE ((t1.STATUSNAME = 'closed' AND> > t1.DATESTARTED> >> > >*variable*) AND t0.ID = t1.PARENTX) [PRE=SELECT DISTINCT t0.ID,
>
ORA-00936: missing expression
[code=936;state=42000]
NestedThrowables:com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper:
[SQL=SELECT DISTINCT t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX,
t0.DEALPA RENTX, t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAMEFROM
JDO_DATE t1, JD O_LEAF t0 WHERE ((t1.STATUSNAME = 'closed' AND
t1.DATESTARTED > variable) AND t0.ID = t1.PARENTX)] [PRE=SELECTDISTINCT
t0.ID, t0.JDOCLASS, t0.IS_CONFLICT, t0.CURRENCYX, t0.DEALPA RENTX,
t0.PARENTX, t0.PRODUCTKIND, t0.T_SIZE, t0.STATUSNAME FROM JDO_DATE t1,JD
O_LEAF t0 WHERE ((t1.STATUSNAME = ? AND t1.DATESTARTED > variable) AND
t0.ID = t1.PARENTX)]
ORA-00936: missing expression
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwDataStore(SQLExcep
tions.java:23)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.executeQuery(JDBCSto
reManager.java:742)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCQuery.executeQuery(JDBCQuery.java
:92)
atcom.solarmetric.kodo.query.QueryImpl.executeWithMap(QueryImpl.java:792)
>>
at
com.solarmetric.kodo.query.QueryImpl.executeWithArray(QueryImpl.java:668)
>>
at com.solarmetric.kodo.query.QueryImpl.execute(QueryImpl.java:623)
at aqueduct.DealMaint.getDateRange(DealMaint.java:523)
at
aqueduct.DealMaint.main(DealMaint.java:35)NestedThrowablesStackTrace:java.sq
l.SQLException:
ORA-00936: missing expression
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:643)
>>
at
oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1819)
>>
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2015)
at
oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(Oracle
PreparedStatement.java:3021)
at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:416)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com -
ORA-12801: error signaled in parallel query server
Hi all
What are the basic reasons of this error:
ORA-12801: error signaled in parallel query server
I have received this error while running report>>>What are the basic reasons of this error:
ORA-12801: error signaled in parallel query server string
Cause: A parallel query server reached an exception condition.
Action: Check the following error message for the cause, and consult your error manual for the appropriate action. -
Is it possible to provide an BEx Web Query with parameters based on iView?
Hi SAP Portal experts,
My knowledge of SAP Portal is limited and I ran into the following problem:
I have got about 60 BEx Web Queries which should be put into some sort of navigation. Furthermore I would like to intodruce one start page where the user can preselect common bex query variables (e.g. company code) by clicking on a map.
My approach was to put all query links into a BEx Web Application Template. The template includes a JavaScript storing the userdefined values in a cookie. As soon as the user clicks on a link the cookie values are read from that cookie and a query parameter string is set up like "&BI_COMMAND_1-BI_COMMAND_TYPE=SET_VARIABLES_STATE&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE_TYPE=VARIABLE_INPUT_STRING&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE_TYPE-VARIABLE_INPUT_STRING=2100&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE=0P_COCD" and concatenated with the URL for the BEx Query.
My colleague wants me to put all this into SAP Portal and to create an iView for each BEx Query. How can I achieve that? I have already had a look at the iView property "parameters passed on to BEx Web Application". If I put my parameter string there, it works fine. However, I would like to replace VARIABLE_INPUT_STRING=2100 and VARIABLE=0P_COCD with the values selected by the user by clicking on the map. So how can I set up a parameter or variable in one iView and read it in another iView with a BEx Web Query???
Thank you very much in advance
MartinI have thought about this. There are some problems here....
I cannot use the same proxy to invoke the java callout and then based on the code or handler disable it, since
1) i would have no way to enable back the proxy again.
2) Also there is some amount of message loss.
So i will have to use another proxy to do the same, but in this case
1) what would be the trigger to this proxy?
2) And how often do i invoke the java callout to see if the URI is up or not? (wouldnt that affect the performance?)
I am just wondering why did they give an offline URI option in the business service and no similar option in the proxy service, Any Idea?
Thanks -
How to query in bpm to generate next seq key
Hi,
I am working in 5.7 and DB2, I am able to insert a record in a table using Fuego.Sql.SqlObject.store() provided i assign the primary key value
prmary key needs to be generated using 'SELECT NEXT VALUE FOR BPMPR.BPM_KEY_SEQ FROM SYSIBM.SYSDUMMY1'
This query returns the next seq number outside bpm. but when i use it with in bpm, it complains : Unexpected value
Suggest me how to get the sequence key which is returned by 'SELECT NEXT VALUE FOR BPMPR.BPM_KEY_SEQ FROM SYSIBM.SYSDUMMY1' query.
I cannot use 'SELECT max(rqstKey) as nxtrqstKey FROM BPMPR.TABLE' to get the primary key value
Thanks!Hi
The first thing you might want to try is to change your logic in ALBPM to use Dynamic SQL to run your query.
Here's the syntax that might work. The logic below assumes you named your database External Resouce "DbWithTheMostest".
nextId as String[]
query as String = "SELECT NEXT VALUE as nxtRqstKey FOR BPMPR.BPM_KEY_SEQ FROM SYSIBM.SYSDUMMY1"
externalResourceName as String = "DbWithTheMostest"
for each row in executeQuery(DynamicSQL, sentence : query, implname : externalResourceName) do
// keep adding customer names to the array until all the customers have been added
nextId[] = " " + row["nxtRqstKey "]
end
The second thing you might want to try is to catalog an SQL Query (vs. SQL). During the introspection, you'll be prompted to enter your sql.
Hope this helps,
Dan -
String buffer put together many stirngs
Hi All,
I am trying to JENA java based browsing system. This is the code for query and results. JENA can only get one single query like "String sQuery = request.getParameter("query");". On GUI I made the interface the user can write select, where, and, using, from. So I made put together using stringbuffer method.
Would you see the below code is right? or somethings are strange. Someone says me to use str.concat but I do not know how to use it. I am just beginner on JAVA and JENA API, so would like to get your comments.
Thanks.
Hyunjoo
See Below codes;
String sQuerySelect = request.getParameter("querySelect");
String sQueryWhere = request.getParameter("queryWhere");
String sQueryAnd = request.getParameter("queryAnd");
String sQueryUsing = request.getParameter("queryUsing");
String sQuery = request.getParameter("query");
// query string /// string plus plus plus
sQuery = new StringBuffer().append("SELECT ").append("sQuerySelect").append(" WHERE ").append("sQueryWhere").append(" AND ").append("sQueryAnd").append(" USING ").append("sQueryUsing)
.toString()
String sQueryFrom = request.getParameter("queryFrom");
String sResult = request.getParameter("result");
model.read(sQueryFrom);
Query query = new Query(sQuery)
query.setSource(model);String sQuerySelect = request.getParameter("querySelect");
String sQueryWhere = request.getParameter("queryWhere");
String sQueryAnd = request.getParameter("queryAnd");
String sQueryUsing = request.getParameter("queryUsing");
String sQuery = request.getParameter("query");
// query string /// string plus plus plus
sQuery = "SELECT "+sQuerySelect+" WHERE "+sQueryWhere+" AND "+sQueryAnd+" USING "+sQueryUsing;
String sQueryFrom = request.getParameter("queryFrom");
String sResult = request.getParameter("result");
model.read(sQueryFrom);
Query query = new Query(sQuery)
query.setSource(model); -
Hi folks
I am not sure why this is happening. Only thing I can think of is field table_name has spaces then when I tried trim it does not like it.
Please help
Thanks a lot!
--------Here's the code ---------------
I have simple query (oracle database table names to extract and count the number of rows in each table) . This is the code snippet.
try { // creating a table in the database
// querying mytable
String query;
query = "select table_name from user_tables;";
ResultSet rs = stmt1.executeQuery(query);
ResultSet rs1 =null;
Statement stmt2 = null;
while (rs.next())
System.out.println("table name : " + rs.getString(1) );
rs1 = stmt2.executeQuery("select count(*) from " + rs.getString(1));
} catch (SQLException e)
{ System.out.println("SQLException : query " + e);
}ORA-00911 invalid character
Cause: Special characters are valid only in certain places. If special characters other than $, _, and # are used in a name and the name is not enclosed in double quotation marks (�), this message will be issued. One exception to this rule is for database names; in this case, double quotes are stripped out and ignored.
Action: Remove the invalid character from the statement or enclose the object name in double quotation marks.
So, I think you problem is a semicolon at then end of your query.
Hope this helps,
Boris
Maybe you are looking for
-
Dear Gurus, I have installed SAP 4.7 IDES. After installation a message came that installation is completed sucessfully. Then I restart the computer and started SAP R3 Management Console their the erroe message is coming. disp+work.exe stop. I am als
-
Performance problems on multi processor machine
Hi, we are using a software written in Java (as Servlets using Tomcat 4.1.29) 1.4, which has a very poor performance. Sadly we don't have the source-codes for the application, but from the log-files we can figure out, that there is a very strong over
-
Modified pictures not updated in iPhoto
Hi everyone, I'm using iPhoto 11(9.3.2) to manage my photolibrary. Best tool ever. For modifying my pictures, I use the external application Photoshop Elements 10(10.0) Opening the external app, including the chosen picture works fine. Saving also. H
-
RowNum for header and detail for XMLNodes using XQuery Sqlserver
Hi All, I have this xml. declare @xml xml set @xml =' <StudentsData> <StudentData> <Name>AAA</Name> <subjects> <subject> <Name>computers</Name> <marks>30</marks> </subject> <subject> <Name>Maths</Name> <marks>40</marks> </subject> </subjects> </Stude
-
Seem to have issue with browser crashing. I select pdf to convert, then select any of the four formats, conversion appears to go as planned but when SAVE button is pushed windows message sez browser has stopped and is being restarted. No other mess