Expression Framework / SELECT * FROM TABLE(CAST(...
Hello!
Is it possible to build the following with Toplink Expression Framework?
Example:
CREATE TYPE TY_OB_TEST AS OBJECT
( SYSTOP_NR NUMBER(5,0)
SYS_NR NUMBER(5,0)
IM_SYS_NAME VARCHAR2(80) ) ;
CREATE TYPE TY_TB_TEST AS TABLE OF TY_OB_TEST;
Package1.FUNCTION1 returns Type TY_TB_TEST.
SQL:
select * from TABLE(CAST(PACKAGE1.FUNCTION1(42)) AS TY_TB_TEST ));
thank you!
Harald.
Nope, just use SQL.
- Don
Similar Messages
-
Special Grant to use "Select * from Table(cast..."??
Hi,
I've recently created the types and function to use the Table(Cast(funtion) as type)). It works fine, and gives me the correct result. I've granted execute on the types and on the function to a role that is enabled for a user, but when the user tries to use the "select * from table(cast(function) as type))", he gets a "ORA-01031: Insufficient Privileges" error message. Is there any other grant that must be given to the role, so that the user can execute the select?
Thanks in advance!
DanielHi Kamal,
I'm not sure what anonymous PL/SQL block means. When I (or the user) try to run the select, I enter all the information, i.e., the owners for the type and function: "select * from table(cast(a.my_function(my_argument) as a.my_type))". I'm trying to use SQLPlus at this time, and I have Oracle 8i.
I didn't to explicitly grant execute to the user because that would go against some rules I have to follow... I'll se if I give it a try though!
Thanks! -
Ora-1460 during select using table(cast(type))
Hi all!
I've got a problem with a query that fails with a ora-1460 at random time intervals. This is a 10.2.0.3 version database running on a sun os.
We've managed to reproduce this error controlled when running an analyze on the table in question at the same time this query runs.
The error looks like this:
Unexpected system error, see server log for details. Root message is: org.apache.ojb.broker.PersistenceBrokerSQLException: * SQLException during execution of sql-statement: * sql statement was 'SELECT A0.ID,A0.LOCK_VERSION,A0.CLASS_NAME,A0.DESCRIPTION,A0.NAME,A0.EXTERNAL_ID,A0.ORDER_NUMBER,A0.LEVEL_ID,A0.ROOT_AH_ID,A0.DIFF_END_DATE,A0.DIFF_START_DATE,A0.SUPPORTED_BY_ASS_CAL,A0.CATEGORY_ROLE_ID FROM CATEGORY A0 WHERE A0.ID IN (select /*+ cardinality(1) */ * from table(cast( ems_string_to_table(?) as ems_table_of_number_type ))union select /*+ cardinality(1) */ * from table(cast( ems_string_to_table('') as ems_table_of_number_type)))' * Exception message is [ORA-01460: unimplemented or unreasonable conversion requested ] * Vendor error code [1460] * SQL state code [72000]
ems_string_to_table is a function thats populates a type with a unknown number of values. Though, the length of the string never exceeds 4k.
ems_table_of_number_type is a type define as "table of numbers".
Has anybody seen this error before, or have any idea why this should be?
Best regards,
HeyersThere is an IN clause constaraint i.e max number of characters you can pass from Oracle .Please check your select inner query which might be resulting to cross more than the boundary IN clause ,
-
Open sys_refcursor for select from table variable?
Hi,
I've got a challenge for you! :-)
I've got a procedure that has a lot of logic to determine what data should be loaded into a table variable. Because of various application constraints, i can not create a global temporary table. Instead, i'd like to create a table variable and populate it with stuff as i go through the procedure.
The end result of the procedure is that i must be able to pass the results back as a sys_refcursor. This is a requirement that is beyond my control as well.
Is there a way to make this sort of procedure work?
Create Or Replace Procedure Xtst
Mu_Cur In Out Sys_Refcursor
Is
Type Xdmlrectype Is Record (Col1 Varchar2(66));
Type Xdmltype Is Table Of Xdmlrectype;
Rtn Xdmltype;
Begin
Select Internal_Id Bulk Collect Into Rtn From Zc_State;
open mu_cur for select col1 from table(rtn);
end;
11/42 PLS-00642: local collection types not allowed in SQL statements
11/36 PL/SQL: ORA-22905: cannot access rows from a non-nested table item
11/19 PL/SQL: SQL Statement ignored
Show Errors;Not anything i'd want to personally implement.
But for educational purposes only of course....
create table this_will_be_gross
column1 number,
column2 varchar2(30)
insert into this_will_be_gross values (1, 'begin the ugliness');
insert into this_will_be_gross values (2, 'end the ugliness');
variable x refcursor;
ME_XE?
declare
Rtn sys.ODCIVARCHAR2LIST;
BEGIN
SELECT
column1 || '-' || column2 Bulk Collect
INTO
Rtn
FROM
this_will_be_gross;
OPEN :x FOR
SELECT
regexp_substr (column_value, '[^-]+', 1, 1) as column1,
regexp_substr (column_value, '[^-]+', 1, 2) as column2
FROM TABLE(CAST(rtn AS sys.ODCIVARCHAR2LIST));
end;
17 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.09
ME_XE?
ME_XE?print :x
COLUMN1 COLUMN2
1 begin the ugliness
2 end the ugliness
2 rows selected.
Elapsed: 00:00:00.11In the above example i 'knew' that a hypen was a safe character to use to break up my data elements (as it would not be found anywhere in the data itself).
I would strongly encourage you not to implement something like this. I realize it's tempting when you are working in strict environments where it can take a serious battle to get structures like temporary tables or SQL Types created, but that's really the proper approach to be taking. -
Problem in displaying data onto Form after selecting from table.
Hi there,
I keep hitting this error when I tried to display the data after the selection from table. Using backing beans w data control to do it
Err: java.lang.ClassCastException: java.util.Collections$SingletonList cannot be cast to java.lang.Integer
Table used ArrayList to retrieve out the wanted data. E.g uses A object
To display: selected data to retrieve the selected row to display as a read-only form layout below the table. E.g. need to get A.getName() to match with B object B.getName() then uses the B object to retrieve out the data.
Anyone know how to do it?Hi
use the follwing code
int rowcount = wdContext.node<Name>().size();
while(rs.next())
IPrivate<ViewName>.I<Name>Element tabnode =wdContext.node<Name>().get<Name>ElementAt(i);
tabnode.nodeAuthoriseNode().invalidate();
tabnode.nodeAuthoriseNode().addElement(0,authele);
tabnode.nodeAuthoriseNode().setLeadSelection(0);
wend
Regards
Dhinakar -
Html form for select * from table a
Hi all,
I m looking for report on header/footer part from one apex pages
which will display context from table a, like sql statement
select * from table a, written in html.
Is any examples in java script/html select from tables
(and same insert into table A (...) select * from table b)
thanks,
GordanHello Gordan,
Do you want to show the whole report or just some data of it?
If it's for ex just the name and address you could create two items and have a process or computation to fill it with your select statement.
If it's the whole report, just create the report and put it in for ex. Region 1. In your page template you can specify that Region 1 needs to come into the footer.
Regards,
Dimitri
-- http://dgielis.blogspot.com/
-- http://apex-evangelists.com/
-- http://apexblogs.info/ -
Xmlgen.getxml("select * from table") returns null pointer exception
I am running oracle 8i on solaris server and clinet on windows
NT and i am this select statement
select xmlgen.getxml("select * from table") from dual ,its
returning null pointer exception,i have tried it through
jdbc,even then its returning xml as
<?xml version = '1.0'?>
<ERROR>java.lang.NullPointerException</ERROR>
can any body tell me the error.Help will be really appreciated.I
need an urgent response,if some one can guide me please.
My email is [email protected],if you can give me a quick
response on this email,your effot will be appreciated.
thanks
MasoodWhat is actually throwing the NullPointerException? rs.getMetaData() or table.setModel()?
-
How do I do SELECT * FROM TABLE WHERE KEY IN ({list})?
The title says it all really.
Is there a reasonable performant way to perform the query
SELECT * FROM TABLE WHERE KEY IN ({list})where {list} is String []?
I am currently creating a PreparedStatement with a for loop like this StringBuffer sb = new StringBuffer ("SELECT * FROM TABLE WHERE ID IN (");
for (int ii=0;ii<keys.length;ii++) {
sb.append (keys [ii]);
if (ii != keys.length-1) sb.append (",");
sb.append (")");but this means that the prepared statement is created each time I call my method and so I'm not sure that the optimizer will find it easy to cope with. Is there a construction that I'm missing along the lines of SELECT * FROM TABLE WHERE KEY = ? where I can create the PreparedStatement once and just call setObject or something on it when the values in {list} change?but this means that the prepared statement is created
each time I call my method and so I'm not sure that
the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those. -
Select from table containing clob
If i try to select from table containing clob column in SQL PLus it gives error.
Tab1 contains 3 clob columns and 1 blob column
select * from tab 1;
SP2-0678: Column or attribute type can not be displayed by SQL*Plus
The same statement works in SQL Developer and I am able to see the result.
Actually i am writing the queries and they will be used by Java developers in their JSP page.
So what happens here? Can Java use these select statements or will it throw error like SQL Plus?BLOB column content can't be displayed in SQL*Plus:
SQL> create table t_blob (b blob);
Table created.
SQL> edit
Wrote file afiedt.buf
1* insert into t_blob values('01')
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t_blob;
SP2-0678: Column or attribute type can not be displayed by SQL*PlusBlob and clob columns content can be processed using DBMS_LOB
package procedures and functions or using client's language (like Java)
methods. See JDBC specification.
Rgds. -
Select * from table not working with Oracle OBDC driver
Hello,
In our web development we have been using the MS ODBC for Oracle
driver to connect to our Oracle db. We decided to try the
Oracle ODBC driver because it supports the commandTimeout
property in ASP which the MS driver does not. The problem I'm
running into now is that all of our select * from table
statements appear not to be working. The Oracle ODBC driver
version we are using is ver 8.00.05.00. Is there something that
I'm not doing properly? If I take the same select * from table
statement and name the columns, I dont get any error. Otherwise
I'm getting a Subscript out of range error. It seems strange to
me that this driver would not support a select * from table
statement (which I''m told is the case by another developer
here).
Is there something I'm missing?
Thanks,
PeteI'm positive I have a connection. Otherwise I wouldn't get a
response when I name the columns instead of using *.
There must be something else that I'm missing or doing wrong.
I've actually been looking into alternative ODBC drivers to see
if I have the same problems but none that I have found support
commandTimeout.
Any other ideas? -
Performace Which is better ? : Bapi inside a loop OR Select from Tables
Hi Gurus,
I have a report which displays purchase info records.
If I am selecting from tables i need to use EINA, EINE, EORD and some other tables.
There is a BAPI which gets all purchase info records specific to a vendor , material , purchasing organisation.
QUESTION: Performace wise which is the better Approach, either selecting from tables or BAPI for Purchase info records
Regards
Avi.Whether it using BAPI or select. you need to check the performance. If you have full key for these tables EINA, EINE, EORD then mak a select outside of the loop and within loop use READ TABLE statement with binary search. of if you want multiple records within loop then use loop insdie loop.
Your final objective is to minimise the database hits . If you use bapi inside loop then your database hits will be more
select from EINA
select from EINE
select from EORD
loop at itab,
read table EINA
read table EINE
read table EORD
endloop
a® -
Insert into table a (select * from table b) - need pk?
Hi there.
I'm going to insert into table FINAL (select * from table STAGING) - same structure but in STAGING the ID column has nulls.
Do I need to provide the ID (primary key) for table FINAL or will it get created based on sequence/trigger?
If I were doing this in a loop I'd get the next val from the sequence but on a simple insert, I'm curious.
thanks!hmm.. what is ?
it didn't like it.
Error(11,4): PLS-00103: Encountered the symbol "[" when expecting one of the following: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe
9i, sqldeveloper -
Select * from table as of Scn fails in powercenter
Hi all, I have written the below query in SQL override of a Powercenter mapping. This fails with 'FROM keyword not found where expected' error. Can you please suggest how else I can fetch last committed data from my source?Select * from table AS OF SCN <Scn no>
Hi All, I have multiple flat files which i need to load in a single table.I did that using indirect option at session level.But need to dig out on how to populate substring of header in name column in target table. i have two columns Id and Name. in all input file I have only one column 'id' with header like H|ABCD|Date. I need to populate target like below example. File 1 File2 H|ABCD|Date. H|EFGH|Date.1 42 5 3 6 Target tale: Id Name1 ABCD2 ABCD3 ABCD4 EFGH5 EFGH6 EFGH can anyone help on what should be the logic to get this data in a table in informatica.
-
How to achieve that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND n"
How to achieve the SQL like that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND name = 'Will' " with BDB C-API
The primary key in the primary database is 'age' ,and the secondary key in the secondary index is 'name' ,in a lot of examples ,there are all simple , but how to do that complex one.thx~but this means that the prepared statement is created
each time I call my method and so I'm not sure that
the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those. -
Can I simulate SELECT * FROM TABLE WHERE ROW IN (1111,2222) using SQLJ
I have a fct like
public void fct(String inStr) {
String str = "SELECT * FROM TABLE WHERE ROW IN" + inStr;
// then I xecute the query using JDBC connection
But I want to do the same thisn using SQLJ like:
public void fct(String inStr) {
#sql [nctx] iter = { SELECT * FROM TABLE WHERE ROW IN :inStr}
When I run the second version and give a parameter like "(1111,2222)" it gives
ORA-01722: invalid number error.
Is there a way to give parameters to in clauses of SQLJ statements.
Thanks in regard.This is a SQLJ FAQ. You can find the FAQ at:
http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html
Your question is addressed in the following section:
http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html#variablesizevaluelist
Note that that section has a typo. The lines:
? // populate mynumbers
#sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),?};
should read:
... // populate mynumbers
#sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),...};
By the way, with the next release SQLJ will support pasting in of dynamic SQL fragments. Then you'll be able to do pretty much what you are trying to accomplish here (albeit with slightly different syntax). Until then you'd have to use the workarounds from the FAQ.
Maybe you are looking for
-
I have all the updated software. This started happening about 2 days ago. I stumped and concerned. Thank you
-
Best Practices Installation Assistant on ECC6
I have installed the SAP ERP 2005 and want to install the Best Practice Baseline (DE). I am having a lot of errors using the BP Installation Assistant for installing the Baseline. Has any one had a successful experience using the BPIA & Personalisati
-
I had my Skype account compromised, had this suspended and then received an email from "customer service" that they had suspended the account and I had to tell them by email that the password had been changed. Since when does the Skype server not kno
-
Problem install PSE11 with a MAC OS disc on MACBook Air
problem install PSE11 with a MAC OS disc on MACBook Air I've done the serial number, adobe ID, Option and now install "installation Progess" with a message Please close all of the following applications to continue: Adobe Bridge CS4, Photoshop Ele
-
.exe to start a .vi ??
So I have recently received a code to examine/modify. It is set up to run a machine, and when the operating computer is turned on, it automatically runs a xxx.exe which opens the top level VI xxx.vi however, the .exe displays a labview symbol rath