USE sequence.nextval in SQL statement
Hi,
I want to use SEQUENCE_name.NEXVAL in our query.
But it gives error
ora-02287: sequence number not allowed here
Select distinct dd.agreementid,dd.cityid,dd.bankid,dd.bankbranchid,zz.bankbranchdesc,
account_no,account_type,Sysdate,'A',Null,'1001',Sysdate,NULL,NULL,
ELEC_PMNT_SEQ.Nextval seq_num
From pdi.pdi_instr_d_tmp dd,
pdi.pdi_bankbranch_m zz,
pdi.pdi_bankaccount_tmp t
Where t.agreementid = dd.agreementid
And dd.cityid = zz.cityid
And dd.bankid = zz.bankid
And dd.bankbranchid= zz.bankbranchid
And dd.mc_status = 'M' And dd.status = 'M' And instr_type <> 'P'
Thanks & Regards
K S Ratan
You can use a subquery, but maybe have you need an order by clause ?
SQL> ed
Wrote file afiedt.buf
1* select distinct username, MySeq.nextval from dba_users
SQL> /
select distinct username, MySeq.nextval from dba_users
ERROR at line 1:
ORA-02287: sequence number not allowed here
SQL> ed
Wrote file afiedt.buf
1 select a.*, MySeq.nextval
2* from (select distinct username from dba_users order by username) a
SQL> /
USERNAME NEXTVAL
DBSNMP 1
H89UCBAC 2
OUTLN 3
PEOPLE 4
PS 5
SYS 6
SYSTEM 7
7 rows selected.
SQL> /
USERNAME NEXTVAL
DBSNMP 8
H89UCBAC 9
OUTLN 10
PEOPLE 11
PS 12
SYS 13
SYSTEM 14
7 rows selected.Is this do you want ? Sequence will increment on each query execution, or did you want the number of output line to have the same result on each sql execution :
SQL> ed
Wrote file afiedt.buf
1 select a.*, rownum
2* from (select distinct username from dba_users order by username) a
SQL> /
USERNAME ROWNUM
DBSNMP 1
H89UCBAC 2
OUTLN 3
PEOPLE 4
PS 5
SYS 6
SYSTEM 7
7 rows selected.
SQL> /
USERNAME ROWNUM
DBSNMP 1
H89UCBAC 2
OUTLN 3
PEOPLE 4
PS 5
SYS 6
SYSTEM 7
7 rows selected.
SQL> Nicolas.
Sorry Laurent, you've already showed that works with subquery...
Message was edited by:
N. Gasparotto
Similar Messages
-
Using Collection in a sql statement.
Hi I want to perform the following statement:
DELETE FROM ALLOCATION_ELEC_MATRIX
WHERE dgo_ean_id in (lt_inter_dgos);
The collection lt_inter_dgos holds my dgo_ean_id's(varchars).
I can't find a way to get it to work.
The collection is declared as follows:
TYPE Interface_param_dgos IS TABLE OF VARCHAR2(20);
lt_inter_dgos Interface_param_dgos := Interface_param_dgos();
then later on the collection gets filled. But how can i get it to work to use it in my sql statement?
I don't won't to use a for loop around it since it would give me problems if I use more collections with a different amount of values in it.The standard approach is to use SQL collection type and table function,
for example
SQL> create TYPE Interface_param_dgos IS TABLE OF VARCHAR2(20);
2 /
Type created.
SQL> create or replace package my_pkg
2 is
3 lt_inter_dgos Interface_param_dgos := Interface_param_dgos();
4 function get_coll return Interface_param_dgos;
5 end;
6 /
Package created.
SQL> create or replace package body my_pkg
2 is
3 function get_coll return Interface_param_dgos
4 is
5 begin
6 return lt_inter_dgos;
7 end;
8 end;
9 /
Package body created.
SQL> begin
2 my_pkg.lt_inter_dgos.extend(3);
3 my_pkg.lt_inter_dgos(1) := 'SMITH';
4 my_pkg.lt_inter_dgos(2) := 'KING';
5 my_pkg.lt_inter_dgos(3) := 'ALLEN';
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select ename from emp;
ENAME
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
14 rows selected.
SQL> delete from emp where ename in (select column_value from table(my_pkg.get_coll));
3 rows deleted.
SQL> select ename from emp;
ENAME
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
TURNER
ADAMS
JAMES
FORD
MILLER
11 rows selected.Rgds. -
How to use sequence in MS sql server?
In Oracle DB we use sequence like that:
SequenceImpl s = new SequenceImpl("customer_seq", getDBTransaction());
Integer next = (Integer)s.getData();
setId(new Number(next.intValue()));
But there is no sequence in sql server ,how can I do?
Thank you~~MS SQLServer have a IDENTITY column property and UNIQUEIDENTIFIER data type that is somewhat similar to Oracle's sequence. I don't know whether your table contain either of these, or you just want to set sequential number to a column.
Below is some info about IDENTITY and UNIQUEIDENTIFIER you may already know since they are in SQLServer Book.
IDENTITY property: You can define IDENTITY property on a numeric column. You can set the seed and increment on this column property very much like Oracle's sequence. The only thing I think it does not have is the "nextval". You can use IDENT_CURRENT function or @@IDENTITY after an INSERT or SELECT INTO to get the last value generated. Of course you can use this value and add the increment to get the next
value but it not the same as seqname.nextval which keep incrementing each time you call it. Getting the current identity value and adding the increment your self will not work for multiple sessions with pending
insert. Another thing about column with IDENTITY property is that you cannot insert value into this column (i.e, omit it in your insert statement values) unless IDENTITY_INSERT is on, but only one table in a
session can have IDENTITY_INSERT to be turned on.
If you don't need to know the next seq value, then IDENTITY work similar to Oracle sequence. Execute select after postchanges or commit will have system generated values. If you need to get next value before insert, Sung suggest using SEQ_TABLE and managing the next value (write a database function to mimic Oracle'
s nextval).
UNIQUEIDENTIFIER datatype: UNIQUEIDENTIFIER is a 16-byte hexadecimal number indicating a globally unique identifier (GUID). The GUID is useful when a row must be unique among many other rows. You could use NEWID() to create a value of type uniqueidentifier or calling some API function that returns a GUID. The advantage of using uniqueidentifier is that the values generated by NEWID function or application GUID are guaranteed to be unique throughout the world. The disadvantage of using uniqueidetifier is that it is long and obscure, random, difficult for user to remember or type correctly. It is 16 byte, which is large compare to other datatype such as 4-byte integer.
Thanks,
Yvonne -
Can we use if/else in sql statement?
Hi,
Is it possible to write a sql statement like the one below (not plsql)?
if (select 'True' from dual) = 'True' -- 1
then
select 'True' from dual; -- 2
else
select 'False' from dual; -- 3
endBasically, I want to execute either sql 2 or 3 based on the result of sql 1. I'm not sure if this is possible using only sql and not having to write a stored proc.
What are the different ways I can implement this?
Thanks for the help.Billy Verreynne wrote:
The case syntax is a bit funny though as there's not a single condition evaluation (like a DECODE or case structs from some other languages).
This is what I would expect a typical case struct to look like - evaluating a single condition:
case <condition>
when <value-1> then return <result-1>
when <value-n> then return <result-n>
else
return <return-z>
end
?:| You mean like this...?
SQL> ed
Wrote file afiedt.buf
1 select empno, ename, deptno
2 ,case deptno
3 when 10 then 'This is Department 10'
4 when 20 then 'And department 20'
5 when 30 then 'And of course department 30'
6 else
7 'Blimey it is something else!'
8 end as dept_desc
9* from emp
SQL> /
EMPNO ENAME DEPTNO DEPT_DESC
7369 SMITH 20 And department 20
7499 ALLEN 30 And of course department 30
7521 WARD 30 And of course department 30
7566 JONES 20 And department 20
7654 MARTIN 30 And of course department 30
7698 BLAKE 30 And of course department 30
7782 CLARK 10 This is Department 10
7788 SCOTT 20 And department 20
7839 KING 10 This is Department 10
7844 TURNER 30 And of course department 30
7876 ADAMS 20 And department 20
7900 JAMES 30 And of course department 30
7902 FORD 20 And department 20
7934 MILLER 10 This is Department 10
14 rows selected. -
Using Date objects in SQL statements
Hi, I am wondering if it is possible to use Date objects while trying to retrieve entries from an access database with fields set as "Date/Time" fields, as opposed to "Text"? If so, do I need to reformat it before inserting it into the SQL statement, or can I just leave it as a Date object, and call up the variable name?
For example - "SELECT * FROM database WHERE startDate = ' " + dateObject + ' ". And do i need quotes round this value?
Thanks in advance.I had some problems by just fetching a date and pushing it back to a MS SQL Database.
I used the following reformating step to fix it:
if (o instanceof Timestamp)
String time = o.toString().substring(8,10)+"."+o.toString().substring(5,7)+"."+o.toString().substring(0,4)+" "+o.toString().substring(11,19);
ht.put(columnName, time);
o is the object i receve from the select statement and ht is a Hashtable where i put my data.
To write the data back i now can use:
UPDATE table SET columnname = 'valueOfColumn'
This means i use the value i created above in Quotes to write it back.
Format of Timestamp.toString() is something like yyyy-mm-dd hh:mm:ss.xx
Format used by MS SQL (and i think by Access to) 'dd.mm.yyyy hh:mm:ss' -
Using cursor function in sql statement
hi all
can anyone plss explain why and when we will use cursor function in a sql statement like this and what is the difference while executing this sql statement with cursor function in comparison of a simple sql statement----
select
department_name,
cursor (
select last_name
from employees e
where e.department_id = d.department_id
order by last_name
) the_employees
from departments d
thnx in advanceRTFM
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/sqloperations.htm#sthref1452
Cheers
Sarma. -
Using 1 = 1 in SQL Statements
I have just been told by our DBA that we have to go through
our code and remove the "WHERE 1 = 1" in our SQL statements on a
SQL 2000 database. He said it is a performance issue when nothing
else follows it (no AND's).
For example (the wrong way):
SELECT this_ID FROM thistable WHERE 1 = 1
Versus...
SELECT this_ID FROM thistable WHERE 1 = 1 AND this_ID = 1001
He said Microsoft said that this is causing a performance hit
when there is no AND clauses after the WHERE.
Some of these SQL statements are pretty big and there is no
practical way to do a CFIF beforehand.
Has anyone heard of a performance hit like this? If so, how
much of a hit? The main table in the DB has about 2 million records
with full text indexes.
Thanks,
Rob in TampaPhil,
Thanks for the speedy response. I forgot to mention.. there
are TOP 200 clauses in all the big SQL statements.
And, like I said before... some of the queries are too big to
test to see if at least 1 of the condidtions exsist. More often
than not, the WHERE 1 = 1 clause will not be alone. I personally
think it is a pet peeve of the DBA where he doesn't see any use of
the 1 = 1. He said.. it's always going to be true. Kinda the point
of having it.
This was taught to me years ago.. but, this is the biggest
application I have worked on where SQL performance could be an
issue. It was mentioned that the hit comes when SQL Server is
building its execution plan and has to include the WHERE 1 = 1
clause. How much of a hit can it cause? Most of the empty clauses
with no AND's are most likely in a JOIN clause or something.
The WHERE placeholder is in almost all of our queries in one
way or another. Not a small project.
Thanks,
Rob -
Using Variables in a SQL Statement
I know, I know, this is written in VB..I'm doing a VB Project right now for my Instructor (While in an Intermediate Java Class)
But VB (I feel) doesnt have very good support Forums.
Anyway, this is the problem:
I want to use String Variables to hold the place of field names in
a SQL Statement and the change the ORDER according to intCount's Loop:
The key word(s) here is "ORDER BY"
Private Sub DataGrid1_Click()
Dim intCount As Integer
Dim strColHead(11) As String
strColHead(0) = "RES__PUR_DT"
strColHead(1) = "VENDOR"
strColHead(2) = "VEN_LOC"
strColHead(3) = "RES_TYPE"
strColHead(4) = "RES_FROM_DT"
strColHead(5) = "RES_TO_DT"
strColHead(6) = "MISC_ADJ"
strColHead(7) = "STATE_TAX"
strColHead(8) = "LOC_CHARGE"
strColHead(9) = "RES_ID"
strColHead(10) = "RES_OP"
For intCount = 0 To 10
If DataGrid1.SelStartCol = intCount Then
Adodc1.RecordSource = "Select * from tblReservation order by 'strColHead(intCount)'"
End If
Adodc1.Refresh
Next intCount
End SubI'm just wondering if anyone knows a work around so that I might be able to store a Table's FIELD name in a variable or an array[] so that I can do a query based on the decision of a loop without having to code 10 IF/ELSE statements.For instance, although the above code will not work, this code, although quite lengthy, does:
If DataGrid1.SelStartCol = 0 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES__PUR_DT"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 1 Then
Adodc1.RecordSource = "Select * from tblReservation order by VENDOR"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 2 Then
Adodc1.RecordSource = "Select * from tblReservation order by VEN_LOC"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 3 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES_TYPE"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 4 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES_FROM_DT"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 5 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES_TO_DT"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 6 Then
Adodc1.RecordSource = "Select * from tblReservation order by MISC_ADJ"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 7 Then
Adodc1.RecordSource = "Select * from tblReservation order by STATE_TAX"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 8 Then
Adodc1.RecordSource = "Select * from tblReservation order by LOC_CHARGE"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 9 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES_ID"
Adodc1.Refresh
ElseIf DataGrid1.SelStartCol = 10 Then
Adodc1.RecordSource = "Select * from tblReservation order by RES_OP"
Adodc1.Refresh
End If
Do you see where i'm going with this?
I simple want to use a variable in the "select * from <Table> Order by <Field>" -
NDS : how to use a ' in the sql statement ?
Hi folks,
I would like to use a sql statement which includes single quotes "'" into my NDS statement.
Since I have to put my statement into a varchar within single qutes I have to
mark the internal quotes as quotes which have to be in my varchar buit don't effect the quoting of the whole varchar.
How can I do that ?
Best regards,
DanielI got it. In order to distinguish between data single quote and varchar sigle quote, you need to use 2 single-quotes instead of one in DATA.
Like this.
SQL>
SQL> drop table table1;
Table dropped.
SQL>
SQL> create table table1(col1 varchar2(20));
Table created.
SQL>
SQL> insert into table1 values('Sarma''s');
1 row created.
SQL>
SQL> commit
2 /
Commit complete.
SQL> select * from table1
2 /
COL1
Sarma's
SQL> Cheers
Sarma. -
Passing date to another form and use the date in sql statement
hello! to all programmers
i have some small problem that need some help.
i want to use date value parameter from the first page in the second page sql statement but i get invalid cursor state error so if anyone can solve this problem or give me a better solution to do this process.
thanks in advance
p/s
EBDATE is define as date data type in my database.
this is part of my jsp code...
<---------------------------------------------------------------------->
SimpleDateFormat sdfInput = new SimpleDateFormat( "yyyy-MM-dd" );
SimpleDateFormat sdfOutput = new SimpleDateFormat ( "dd/MM/yyyy" );
String date= request.getParameter("date");
Date date1 = sdfInput.parse(date);
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:wtmis_db","","");
Statement stmt=con.createStatement();
ResultSet set=stmt.executeQuery("select * from ELECTRICBIL where EBDATE="+sdfOutput.format(date1));
if (set!=null)
set.next();
Date bildate =set.getDate ("EBDATE");
Date sdate =set.getDate ("EBSTARTDATE");
Date edate =set.getDate ("EBENDDATE");
int kw =set.getInt ("EBKILOWATT");
int maxdemand =set.getInt ("EBMAXIMUMDEMAND");
int days =set.getInt ("EBDAYS");
<---------------------------------------------------------------------->Try this
<%
while(set.next())
Date bildate =set.getDate ("EBDATE");
Date sdate =set.getDate ("EBSTARTDATE");
Date edate =set.getDate ("EBENDDATE");
int kw =set.getInt ("EBKILOWATT");
int maxdemand =set.getInt ("EBMAXIMUMDEMAND");
int days =set.getInt ("EBDAYS");
%>
<tr>
<td width="211"><div align="left"><b>Bill Date :</b></div></td>
<td width="573"><%=sdfOutput.format(date1)%></td>
</tr>
<tr>
<td width="211"><div align="left"><b>Bill From :</b></div></td>
<td width="573"> <input type="text" name="textfield" value="<%=sdate%>"></td>
</tr>
<tr>
<td width="211"><div align="left"><b>Bill To :</b></div></td>
<td width="573"> <input type="text" name="textfield2" value="<%=edate%>"></td>
</tr>
<tr>
<td width="211"><div align="left"><b><b>kiloWatt Use (Rm)</b>: </b></div></td>
<td width="573"> <input type="text" name="textfield2" value="<%=kw%>"></td>
</tr>
<tr>
<td width="211"><div align="left"><b>Max Demand kiloWatt (Rm):</b></div></td>
<td width="573"> <input type="text" name="textfield2" value="<%=maxdemand%>"></td>
</tr>
<tr>
<td width="211"><div align="left"><b>Days In Billing :</b></div></td>
<td width="573"> <input type="text" name="textfield2" value="<%=days%>"></td>
</tr>
<%
%>
i hope. Now u wouldn't get any error message...but...u wouldn't get results as well...Check ur date format with access date format....
Revert back -
Using bind variables with sql statements
We connect from a VB 6.0 program via OO4O to an Oracle 8.1.7 database, using bind variables in connection with select statements. Running ok, but performance again by using bind vars not as good as expected!
When looking into the table v$sqlarea, we were able to detect the reason. We expected that our program submits the sql statement with bind vars, Oracle parses this once, and with each select statement again, we do not have a reparse. But: It seems that with each new session Oracle reparses the sql statement, that is, Oracle is not able to memorize or cache bind vars and statements. Even more worrying, this kind of behaviour was visible with each new dynaset, but the same database/session.
Is there anybody our there with an idea of what is happening here?
Code snippet:
Dim OraSession As OracleInProcServer.OraSessionClass
Dim OraDatabase As OracleInProcServer.OraDatabase
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(my database", "my connect", 0&)
OraDatabase.Parameters.Add "my_bind", 0, ORAPARM_INPUT
OraDatabase.Parameters("my_bind").DynasetOption = ORADYN_NOCACHE
OraDatabase.Parameters("my_bind").serverType = ORATYPE_NUMBER ' Bind Var Type
Dim RS As OracleInProcServer.OraDynaset
strSQLstatement= "Select * from my_table where igz= [my_bind] "
Set RS = OraDatabase.CreateDynaset(strSQLstatement, &H4)
OraDatabase.Parameters("my_bind").Value = myValue
RS.Refresh
Cheers and thanks a lot :)
Michael SonntagWe connect from a VB 6.0 program via OO4O to an Oracle 8.1.7 database, using bind variables in connection with select statements. Running ok, but performance again by using bind vars not as good as expected!
When looking into the table v$sqlarea, we were able to detect the reason. We expected that our program submits the sql statement with bind vars, Oracle parses this once, and with each select statement again, we do not have a reparse. But: It seems that with each new session Oracle reparses the sql statement, that is, Oracle is not able to memorize or cache bind vars and statements. Even more worrying, this kind of behaviour was visible with each new dynaset, but the same database/session.
Is there anybody our there with an idea of what is happening here?
Code snippet:
Dim OraSession As OracleInProcServer.OraSessionClass
Dim OraDatabase As OracleInProcServer.OraDatabase
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase(my database", "my connect", 0&)
OraDatabase.Parameters.Add "my_bind", 0, ORAPARM_INPUT
OraDatabase.Parameters("my_bind").DynasetOption = ORADYN_NOCACHE
OraDatabase.Parameters("my_bind").serverType = ORATYPE_NUMBER ' Bind Var Type
Dim RS As OracleInProcServer.OraDynaset
strSQLstatement= "Select * from my_table where igz= [my_bind] "
Set RS = OraDatabase.CreateDynaset(strSQLstatement, &H4)
OraDatabase.Parameters("my_bind").Value = myValue
RS.Refresh
Cheers and thanks a lot :)
Michael Sonntag -
Passing sequence nextval in insert statement
Hi,
Want to insert a record in table A using incremented sequence value to be get inserted in the ID column of table.
ID column is having a primary key constraint
created sequence test1_seq for that table
How to use this sequence number's NEXTVAL to be get inserted in ID column of table A, along with other data.
How to pass the values to the below procedure for inserting record ?
There are total six fields in the column
execute pk_test1.insert_test1('*How to pass next sequence value here ?*','rec2','rec3','rec4','rec5','rec6')
With Regards
Edited by: user640001 on Aug 10, 2010 12:25 AMCheck this: You can create a trigger to insert a sequence value in to a table for every insert that happens:
SQL> create table my_Test1(col1 number,col2 VARCHAR2(100));
Table created.
SQL> ed
Wrote file afiedt.buf
1 create sequence test1_seq
2 start with 1
3 increment by 1
4 maxvalue 999999999
5 nocycle
6 nocache
7* noorder
SQL> /
SQL> ed
Wrote file afiedt.buf
1 create or replace package pkg1_test as
2 procedure insert_tab1(p_val1 VARCHAR2);
3* end;
SQL> /
Package created.
SQL> ed
Wrote file afiedt.buf
1 create or replace package body pkg1_test as
2 procedure insert_tab1(p_val1 varchar2) is
3 begin
4 insert into my_test1(col2) values(p_val1);
5 COMMIT;
6 END;
7* end;
SQL> /
Package body created.
SQL> create trigger my_trig1 before insert on my_test1
2 for each row
3 declare
4 v_seqno NUMBER := 0;
5 BEGIN
6 SELECT test1_seq.nextval into v_seqno from dual;
7 :new.col1 := v_seqno;
8 end;
9 /
Trigger created.
SQL> exec pkg1_test.insert_tab1(100);
PL/SQL procedure successfully completed.
SQL> select * from my_Test1;
COL1 COL2
1 ABCD
2 100
SQL> select test1_seq.currval from dual;
CURRVAL
2
SQL> Edited by: AP on Aug 10, 2010 12:38 AM -
Can we use repository variables in SQL statement of column prompt?
Hi Dudes,
Below is the query
SELECT "- End Date"."End Fiscal Year" FROM "Consumer Sector" WHERE ("- End Date"."End Fiscal Year" = valueof (current_year)) or ("- End Date"."End Fiscal Year" = valueof (current_year) -1)
when use this sql in criteria prompt getting error.
Please suggest .
thanks.sriMake sure your syntax is correct it should be like VALUEOF("CURRENT_YEAR")-1
If you still have issues then VALUEOF("CURRENT_YEAR")-1 cast it to int before you subtract.
If helps pls mark as correct else let share error message -
Using a string as sql statement in PL/SQL
Hi there,
I have a function which returns a part of a query depending on some conditions.
FUNCTION GET_REPORT_TYPE(in_report_type IN NUMBER)
RETURN VARCHAR2
AS
reporttype varchar2(50);
BEGIN
CASE in_report_type
WHEN 0 THEN
reporttype := 'C1.DATE_CLOSED != NULL';
WHEN 1 THEN
reporttype := 'C1.DATE_CLOSED := NULL';
WHEN 2 THEN
reporttype := '';
END CASE;
RETURN reporttype;
END GET_REPORT_TYPE;
Now in my procedure I would like to put this returned value in an AND clause of my query:
procedure get_cpl(p_cursor OUT rst_cur, searchcode IN VARCHAR2, reporttype IN VARCHAR2)
is
begin
open p_cursor for
SELECT C1.CIPIDI_NR,
C1.CIPIDI_NAME,
C2.TEAM_MEMBER
FROM TBL_CIPIDI C1, TBL_TEAM_MEMBERS C2
WHERE C1.CIPIDI_NR LIKE searchcode
AND C1.CIPIDI_NR = C2.CIPIDI_NR (+);
AND reporttype; -- HERE I WOULD LIKE TO USE WHAT THE FUNCTIONS RETURNED
end get_cpl;
How can I can I use reporttype to function as a part of the query? Thanks a lot
Chrisscott@ORA92> -- test data:
scott@ORA92> SELECT * FROM tbl_cipidi
2 /
CIPIDI_NR CIPIDI_NAME DATE_CLOS
1 name1 30-MAY-05
1 name2
scott@ORA92> SELECT * FROM tbl_team_members
2 /
CIPIDI_NR TEAM_MEMBER
1 team1
scott@ORA92> -- function:
scott@ORA92> CREATE OR REPLACE FUNCTION GET_REPORT_TYPE
2 (in_report_type IN NUMBER)
3 RETURN VARCHAR2
4 AS
5 reporttype varchar2(50);
6 BEGIN
7 CASE in_report_type
8 WHEN 0 THEN reporttype := 'C1.DATE_CLOSED IS NOT NULL';
9 WHEN 1 THEN reporttype := 'C1.DATE_CLOSED IS NULL';
10 ELSE reporttype := '1 = 1';
11 END CASE;
12 RETURN reporttype;
13 END GET_REPORT_TYPE;
14 /
Function created.
scott@ORA92> SHOW ERRORS
No errors.
scott@ORA92> -- packaged with procedure:
scott@ORA92> CREATE OR REPLACE PACKAGE your_pkg
2 AS
3 TYPE rst_cur IS REF CURSOR;
4 procedure get_cpl
5 (p_cursor OUT rst_cur,
6 searchcode IN VARCHAR2,
7 reporttype IN VARCHAR2);
8 END your_pkg;
9 /
Package created.
scott@ORA92> SHOW ERRORS
No errors.
scott@ORA92> CREATE OR REPLACE PACKAGE BODY your_pkg
2 AS
3 procedure get_cpl
4 (p_cursor OUT rst_cur,
5 searchcode IN VARCHAR2,
6 reporttype IN VARCHAR2)
7 is
8 begin
9 OPEN p_cursor FOR
10 'SELECT C1.CIPIDI_NR,
11 C1.CIPIDI_NAME,
12 C2.TEAM_MEMBER
13 FROM TBL_CIPIDI C1, TBL_TEAM_MEMBERS C2
14 WHERE C1.CIPIDI_NR = :b_searchcode
15 AND C1.CIPIDI_NR = C2.CIPIDI_NR (+)
16 AND ' || get_report_type (reporttype)
17 USING searchcode;
18 end get_cpl;
19 END your_pkg;
20 /
Package body created.
scott@ORA92> SHOW ERRORS
No errors.
scott@ORA92> -- tests:
scott@ORA92> VARIABLE g_ref REFCURSOR
scott@ORA92> SET AUTOPRINT ON
scott@ORA92> EXECUTE your_pkg.get_cpl (:g_ref, 1, 0)
PL/SQL procedure successfully completed.
CIPIDI_NR CIPIDI_NAME TEAM_MEMBER
1 name1 team1
scott@ORA92> EXECUTE your_pkg.get_cpl (:g_ref, 1, 1)
PL/SQL procedure successfully completed.
CIPIDI_NR CIPIDI_NAME TEAM_MEMBER
1 name2 team1
scott@ORA92> EXECUTE your_pkg.get_cpl (:g_ref, 1, 2)
PL/SQL procedure successfully completed.
CIPIDI_NR CIPIDI_NAME TEAM_MEMBER
1 name1 team1
1 name2 team1
scott@ORA92> -
Using passed values in SQL statements
Using Adobe Livecycle Designer 7, we wish to populate a pdf document with values from a MS SQL database. The values will change depending on the ID of the record called for.
We can already populate the form using SQL (SELECT firstname FROM names WHERE id = 1), but we need to populate it based on a 'passed' value in a url (http://www.mysite.com/mypdf.pdf?id=1).
When we try to include this into the SQL (SELECT firstname FROM names WHERE id = request.id) we get an error. Could anyone provide us with the correct syntax that will allow us to populate the form based on the ID passed in a URL?
Many Thanks
CraigHi all of you,
I do have a problem with coding correctly a form I am designing sing the Adobe Livecycle . In one of the field, there is an underlying field that when you exit the first name field or the Middle Initial field or the last name, it should all pass the respective values to the underlying field which becomes visible on printout. I do have this code I wrote on the exit event, but do not understand why it it not working. Please, can anyone tell me why it is not working or help me out on a better way of making it work.
xfa.host.messageBox("Check this");
if (EMPFNAME.rawValue <> " " ){
xfa.host.messageBox("EMPFNAME");
EMPNAME.rawValue = String(EMPFNAME.rawValue) + " ";
if (EMPFNAME.rawValue <> " " )&&(EMPMI.rawValue <> " "){
EMPNAME.rawValue = String(EMPFNAME.rawValue) + " " + String(EMPMI.rawValue) + ".";
var s = EMPMI.rawValue;
EMPMI.rawValue = s.toUpperCase();
if (EMPFNAME.rawValue <> " " )&&(EMPMI.rawValue <> " ")&&(EMPLNAME.rawValue <> " "){
EMPNAME.rawValue = String(EMPFNAME.rawValue) + " " + String(EMPMI.rawValue) + "." + " " + String(EMPLNAME.rawValue);
var s = EMPMI.rawValue;
EMPMI.rawValue = s.toUpperCase();
Thanks
Lucky P
Maybe you are looking for
-
When my hard drive was replaced by Apple, I had to re-install iTunes myself. Then I noticed that there was a question mark on my dock where the App Store Icon was supposed to be. I did a software update, and now the question mark is gone. How do I ge
-
My computers rescently both died and I have had to replace the harddrives in both my MacBook and iMac. I had LR 5 on both computers but now have lost them. How can I download them again? Thank You, Emily
-
TS4006 how to check my iphone location in my macbook pro via find my iphone or imac software ?
just give me idea bcz i have sync my id in my 2 different iphone and also i synced my id in my macbook pro 15 inch but in my macbook how to chek my iphone location in my mac via find my iphone or my mac software
-
Browser changed colors - theme/persona change doesn't make it go away
The top and bottom of my browser has changed from solid gray to pink tinted transparent. I've checked the add ons and there is no theme/persona installed. I've restarted in safe mode and it's still there. I've installed different themes/personas and
-
I ordered my iphone from an Verizon store on the 22nd and I have yet to get an email or tracking number from them. I tried to look up my order status on the Verizon website but it says Expected Ship Date: Not available at this time. And that