How to pass a where-clause to a procedure
I have to develop a stored procedure where a part of the where-clause of the select of a cursor depends on the input parameter.
My procedure should be something like this:
procedure myproc (WHERECLAUSE in varchar2(100)) is
begin
declare
cursor mycur is
select *
from mytable
where a = b
and c = d
and <WHERECLAUSE>
begin
open mycur;
loop
fetch ...
end;
end myproc;
In order to join the parameter WHERECLAUSE to the select of the cursor I've thought of using the dynamyc sql.
My problem is if I have to use a dynamyc sql, should I put the whole of my code (declaration of cursor and the following statements) in a uinque variable to be executed by the dynamyc sql?
What do you adivise me to use?
Thanks in advance!
Hi,
In order to retrieve the fields as you had mentioned
QUERY_STR := 'SELECT field1, field2 FROM TABLENAME' || WHERE_STR;
OPEN c FOR query_strtry to use this
declare variables
var1 <data type of field1>
var2 <data type of field2>
QUERY_STR := 'SELECT field1, field2 FROM TABLENAME' || WHERE_STR;
OPEN c FOR query_str
LOOP
FETCH c INTO var1, var2;
EXIT WHEN c%NOTFOUND;
<do what ever you want with those fields>
END LOOP;
CLOSE c;Hope this might help you
cheers
VT
Similar Messages
-
How to pass LOV Where clause params from Page CO
Dear Members,
I have an OAF Page for which I defined a CO.
I also have an LOV for which I have two parameters in where clause.
Now my requirement is to pass the two values to the where clause parameters of LOV from the CO of the respective page.
Can any one please guide me in achieving this requirement.
Best Regards,
Arun ReddyHi Arun
as gyan, suggested try attching a new controller to lov , or extend its existing controller.
In the page CO
store the parameter that needs to be passed to lov in pageContext.putSessionValue(paramName,paramValue)
In the CO of Lov page , in processrequest
retrive the stored values using pageContext.getSessionValue(paramName)
Regards
Ravi -
How to pass the parameter of a stored procedure to iReport
Hi... i don't know how to pass the parameter of the stored procedure to the iReport.
In the Report Query, i tried
1. sp_storedprocedure ' value'
2. sp_storedprocedure +''''+$P{parameter}+''''+
3. sp_storedprocedure +$V+$P{parameter}++$F($F is a variable having a value of ' (a single quote))may you enlighten us please? thank youFor M$ SQL server I find that it only works when U use the fully qualified name...
e.g. catalod.dbo.my_procedure_name 'variable'
My full query in the Report Query window is something like this:
EXEC arc.dbo.jasper_Invoice 1000
Note that you may find that selecting from VIEWS / TABLES fails for no apparent reason and iReport will prompt you with the usual very unhelpful (we have what we "pay" for) prompt, stating that "The document is empty".
To work around this issue, where a statement like "SELECT * FROM arc.dbo.acc_invoices WHERE Invoice_id=1000" does not work, simply create a PROC, something like:
CREATE PROC jasper_MyProc (@my_rec_id integer) AS
SELECT * FROM arc.dbo.acc_invoices WHERE Invoice_id= @my_rec_id integer
...to wrap your SELECT statement, then call the PROC
Edited by: Sylinsr on Apr 22, 2008 4:23 PM -
Dynamic Where Clause in a Procedure
Hi everyone!
I would like to seek an assistance regarding a where clause that
can be set dynamically during runtime in a procedure. Is it
possible that a where clause of a procedure can be passed using
a parameter?
I would appreciate all responses.
Thank you.
Weng
nullAbsolutely !
You can do it using dynamic SQL.
Cheer !
TT
Weng (guest) wrote:
: Hi everyone!
: I would like to seek an assistance regarding a where clause
that
: can be set dynamically during runtime in a procedure. Is it
: possible that a where clause of a procedure can be passed using
: a parameter?
: I would appreciate all responses.
: Thank you.
: Weng
null -
I m also trying for How to pass Object to a procedureb using OCCI...
Steps....
1. I created A type.....
2. Then I created a VARRAY using that Type.
3.After that I have written An Procedure with object as a parameter..
now using OCCI how do u bind the parameter with this . plz note that using OTT
i have already created the class representation of above object type i.e class
four Files Created 1> demo.h 2>registermapping.h
3> demo.cpp 2>registermapping.cpp
After I want to Pass the Values in A Vector...
vctor<full_name *> vect;
stmt=con->createStatement("BEGIN Add_Object(:1); END;");
full_name *name1 = new full_name; //Giving the Error here Given below....
name1->
name1->
Through name1 Which Function I will call in which I will Pass a String....
like
name1->readSQL("Sanjay"); Or I have to add a function......
vect.push_back(name1);
setVector(stmt,1,vect,"FULL_NAME");
error C2259: 'FullName' : cannot instantiate abstract class
can u plz suggest me Why this Error is Giving......?
How to pass the data?
setFirst_name() and setLast_name() this two function I will add in Demo.cpp which one created automativcally by Using OTT command.....or other way plz tell me Boss ....
Can u lz Suggest me ASAP....hi Nishant ,
What u have done Now I mm trying ....
can u Plz Suggest me......
How to pass and Array of Object in Procedure using OCCI... Doing....
90% finished Two Error's Are Coming...
1> If I create the Class then Data Not Inserting table......
2> If I will create the Class through OTT command.......
then U can't Instantiate Object It is DIsplying ,this is Abstract Class(PObject)...
Beco'z the below Method is Not adding Automatically by OTT command which is Pure Virtual Function.....
But I added this Function Still SAme Error Giving..
getSQLTypeName(oracle::occi::Environment env, void *schName,
unsigned int &schNameLen, void **typeName,
unsigned int &typeNameLen) const
Plz Suggest me....
regard's
sanjay -
How to Pass multiple parameter into single store procedure
How to Pass multiple parameter into single store procedure
like a one to many relationship.
it is possible then reply me immediatlyyou mean like this .....
CREATE OR REPLACE procedure display_me(in_param in varchar2,in_default in varchar2 := 'Default') is
BEGIN
DBMS_OUTPUT.put_line ('Values is .....'||in_param || '....'||in_default);
END display_me;
CREATE OR REPLACE procedure display_me_2 as
cnt integer :=0;
BEGIN
For c1_rec In (SELECT empno,deptno FROM test_emp) Loop
display_me(in_param => c1_rec.empno);
cnt := cnt+1;
end loop;
DBMS_OUTPUT.put_line('Total record count is ....'||cnt);
END display_me_2;
SQL > exec display_me_2
Values is .....9999....Default
Values is .....4567....Default
Values is .....2345....Default
Values is .....7369....Default
Values is .....7499....Default
Values is .....7521....Default
Values is .....7566....Default
Values is .....7654....Default
Values is .....7698....Default
Values is .....7782....Default
Values is .....7788....Default
Values is .....7839....Default
Values is .....7844....Default
Values is .....7876....Default
Values is .....7900....Default
Values is .....7902....Default
Values is .....7934....Default
Values is .....1234....Default
Total record count is ....18 -
How to pass an array to a stored procedure
create or replace package demo_pkg
as
type cityArray is table of city%rowtype index by binary_integer;
procedure city_report( p_inputs in cityArray );
end;
CREATE OR REPLACE PACKAGE BODY demo_pkg
AS
PROCEDURE city_report (p_inputs IN cityarray)
IS
BEGIN
FOR i IN 1 .. p_inputs.COUNT
LOOP
DBMS_OUTPUT.put_line ( 'citycode = '
|| p_inputs (i).city_code
|| ' CITYDESCRIPTION = '
|| p_inputs (i).city_description
INSERT INTO testing
(city_code, city_description
VALUES (p_inputs (i).city_code, p_inputs (i).city_description
commit;
END LOOP;
END;
END;
to call that procedure ia m using this
declare
my_data demo_pkg.cityArray;
begin
my_data(1).city_code := 1234;
my_data(1).CITY_DESCRIPTION := 10;
my_data(2).city_code := 4567;
my_data(2).CITY_DESCRIPTION := 20;
my_data(3).city_code := 4321;
my_data(3).CITY_DESCRIPTION := 30;
demo_pkg.city_report( my_data );
end;
but actually the procedure (demo_pkg.city_report)is called from front end(.net).how they will call this procedure in .net invironmentHi,
Your exact question has been asked before, see: http://asktom.oracle.com/pls/ask/search?p_string=How+to+pass+an+array+to+a+stored+procedure
or do a search on this forum.
And please use this tag => (yes, just the 4 characters forming the word 'code' between curly brackets)
*before* and *after* your example to maintain formatting and indentation, it's hard to read now.... -
How to establish a where clause dinamically in a form?
I've a form with a table activities that must call (with a custom button) to a form with (only) the documents associated to this activity.
In the BD i have the table Activities (pk=codi_acti), the table documents (pk=codi_docu) and one more table for associate both called activities_documents (pk=codi_acti, codi_docu).
The user editing the activity X after click the button must see all the documents of X but nothing else.
My first attempt was a MD Form with the table activities_documents as master and the table documents as detail, but documents have a blob column and then this is not possible.
Now I'm trying to establish the where clause to perform this but I can't get it. I pass codi_acti to this (documents) form and then I should show all the documents that have codi_docu in the table activities_documents, otherwise SELECT * FROM documents WHERE codi_docu IN (SELECT codi_docu FROM activities_documents WHERE codi_docu=:codi_acti).
How can I achieve this?
Please Help!!!
Sincerely
David MontejoForms can autoquery data based on the URL used to call the form. You can build the URL
and call the form with the required query, on successfull form submission you can do the following
begin
declare
my_url varchar2(2000);
n_rl_id number;
begin
n_rh_id:=p_session.get_value_as_NUMBER(
p_block_name => 'MASTER_BLOCK',
p_attribute_name => 'A_RH_ID',
p_index => 1
my_url := 'PORTAL30.wwa_app_module.link?' ||
'p_arg_names=_moduleid&p_arg_values=<your form id>' ||
'&p_arg_names=_show_header&p_arg_values=YES' ||
'&p_arg_names=rh_id&p_arg_values=' || LTRIM(TO_CHAR(n_rh_id)) ||
'&p_arg_names=_rh_id_cond&p_arg_values=%3D';
-- %3d means "="
go (my_url);
end;
end; -
How to set dynamic WHERE clause to VO from backingBean?
Hi,
Can any one let me know the best way to add the dynamic WHERE clause in to VO query.
I have created AM (with AMImpl.java) & VO (with VOImpl.java & VORowImpl.java) in my model project. I suppose to set the WHERE condition at runtime while the user click the search button. I am handling the user button click at UI layer backingBean. From the backing bean I could able to get the objct of the VO and set the where clause by below code.
ValueExpression valueExp = elFactory.createValueExpression(elContext, "#{bindings.UserSearchVO1Iterator}", Object.class);
DCIteratorBinding dcIter = (DCIteratorBinding)valueExp.getValue(elContext);
ViewObject userSearchVO = dcIter.getViewObject();
userSearchVO.setWhereClause("lower(usr_login) LIKE ':1' and usr_udf_suid like ':2' ");
userSearchVO.executeQuery();But as I fear this is not the right way to do it. So I am creating the cutom method inside the VOImpl.java and triggring that method by creating one more cutom method in AMImpl.java. But I dont know how to invoke this AM method from backingBean.
AMImpl method
public void initDetails()
UserSearchVOImpl vo = getUserSearchVO1();
vo.initQuery();
VOImpl method
public void initQuery()
setWhereClause("lower(usr_login) LIKE 'a%' and usr_udf_suid like '%1144%'");
executeQuery();
}Can any one guide me which is the best way to set the where clause to VO? How to call the AM method from backingBean?
Thanks
klni am new to oracle 11g i writing a stored procedure in which i have made use of case in where clause to pass my parameter value v_toStoreID
i have googled a lot regarding that i found that to use case in where clause it should be like this
where
case column_value
when 0
then value1
else
value2
end
this my query
SELECT ITMID as ItemId,
NVL(OrderDtl.PackageID, 0) PackageId,
OrderDtl.OrdDtlID,
(CASE NVL(OrderDtl.PackageID, 0)
WHEN 0
THEN 1
ELSE 0
END) as PackageFlag,
ivitem.Code ItemCode,
ivitem.ITMNAME AS itemName,
IvPatientIssueMst.IssueNo Issue_No,
to_char(Issuedate, 'DD/MM/YYYY') IssueDate,
OrderDtl.OrdQty,
NVL(OrderDtl.AllocationID, 0) Package,
OrderDtl.ServiceAmount MRP
FROM IvPatientIssueMst
JOIN OrderMst
ON IvPatientIssueMst.OrderId = OrderMst.OrdId
JOIN OrderDtl
ON OrderDtl.OrdID = OrderMst.OrdId
JOIN ivitem
ON ivitem.ITMID = OrderDtl.DrugId
LEFT JOIN IVPatientIndentMst
ON IVPatientIndentMst.IndentID = IvPatientIssueMst.IndentId
WHERE OrderMst.OrdVisitID = 395899
AND
*(CASE IvPatientIssueMst.StoreId*
when NVL(IvPatientIssueMst.StoreId, 0)=0
THEN v_toStoreID
ELSE IVPatientIndentMst.ToStoreID
END)
ORDER BY ivitem.ITMNAME;
it is not working please someone help -
How to dynamically build where clause in Linq
Hello everyone,
Oracle DB:11gR2
Oracle Client: 11.2.0.3.0 (ODP.NET)
Oracle Developer Tools for Visual Studio
VS 2010 (C#)
In a Windows Form, we need to query the data based on the values of dropdown listboxes, which user will select.
Let's say, two combox, one is for Department and one is for Salary
Department:
-1 All
10 Department 1
20 Department 2
30 Department 3
Salary:
-1 All
1 < 20000
2 20000 to 50000
3 50000 to 100000
4 > 100000
Here is C# code to query data:
using (var myEDMctx = new HREntities())
var LINQrslt = from emp in myEDMctx.EMPLOYEES
select emp;
The default values for both combox should be All.
How to write the dynamic where clause for this LINQ?
Thanks in advance!!!There is nothing Oracle-specific about dynamic LINQ queries. Dynamic LINQ queries are handled all the same way, no matter which data source you use. Microsoft describes how to use Dynamic LINQ here:
http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx
http://weblogs.asp.net/davidfowler/archive/2010/08/19/dynamic-linq-part-2-evolution.aspx -
How to set dynamic where clause in ADF?
Hi,
I have a View object called BillInfoVO. This has
all the information about who created the request, the time , status etc.,
I need to display this VO in a jsp. But before I display, i need to fileter this
VO results with different where clauses according to the role of the user.
For example, if the role is admin, then
where clause should be 'status = 'Completed, and created by = 'Current user'
If the role is requestor, then
the where clause should be
sales manager id = 'Current user' and
Status != Complete etc.,
Could any one please let me know how I can
dynamically set the where clause to filter the appropirate
result row set in the jsp?
Your help will be greatly appreciated.
Thanks,
venkiYou'll create a service method in your AM that will use the setWhereClause method of a viewobject.
Then you'll expose it as a client method.
Then you'll drag it from your data-control onto a button in your JSF page that will call your page for the query.
More about service methods here:
http://download.oracle.com/docs/html/B25947_01/bcservices003.htm#sm0206
http://download.oracle.com/docs/html/B25947_01/bcquerying008.htm#sthref286 -
How to set the where clause of a value set on the basis of a form field
I am using a DFF(Descriptive FlexField), which needs to display the value of a certain column(say columnA) on the basis of the value of another column(say columnB).
So i have created a value set which points to the table which has both these columns, and the DFF uses this value set. However, the problem is that I have not put any where clause in the value set, because of which i cannot handle the exact fetch returns more than one rows error.
The query has to be as follows:
select ColumnA from tbl where ColumnB = [ a form value ];
What I want to know is how can i get the value of a certain field of a certain block of the form in the above query.
Edited by: 981615 on Jan 14, 2013 12:48 AM
Edited by: 981615 on Jan 14, 2013 12:48 AMJust have a look over these two statements if it solves your problem
one time where clause
Set_Block_Property('BLOCK_NAME',ONETIME_WHERE,your form item);
dynamic where clause
set_block_property('BLOCK_NAME'default_where, your form itme)
you can where clause at run time from any procedure or some triggers -
How to edit the where clause of View object in search example dynamically
Hi,
I am new to OA Framework. Can anybody please tell me how can I assign the where clause dynamically. I want to search only those rows whose creation date is between a 'Date form' and 'Date to' inputs from the search page
Thanks
Anupamuser567342 ,
I will advice u again pls refer dev guide, there u can find code sample for ur requirement, which can be accomplished using stringbuffer.
--Mukul -
How to modify the where clause in this to include other things
How do I modify the WHERE clause in this code:
$expected = array(first_name, last_name, level, language, 'city', 'state', 'zip', );
$query_search = 'SELECT * FROM french;
$where = false;
foreach ($expected as $var) {
if (isset($_GET[$var]) && !empty($_GET[$var])) {
if ($where) {
$query_search .= ' AND ';
} else {
$query_search .= ' WHERE ';
$where = true;
$query_search .= $var . ' = '. GetSQLValueString($_GET[$var], 'text');
to include things like searching multiple columns and IF NULL:
SELECT * from MyTable where (MyCol1 = %s or MyCol1 Is Null) AND (MyCol2 = %s or MyCol2 Is Null)
Where on earth does it go?
Thanks
BrianMy goal is to have a search form and results combination that:
1) allows the user to ignore any of the page’s existing search fields that
they don’t need, (to search with empty form fields);
2) to use whichever search form fields they choose to use even if the
Registrant for whom they are searching did not insert that information when
they registered, (they are filled in the search form but empty in the
database table);
3) and to permit some of the seach fields to search multiple columns, for
example the search form field ‘sonsName’ would look for that information in
three different database table colums, (sonsName1, sonsName2 etc.).
You’ve given me code that permits 1) above to work beautifully. You’ve also
sent along code that should let me accomplish the other two, and though I’ve
been able to recreate below what I want the multiple search column to do, I
can get neither the multiple column nor the IS NULL sections to work in the
code you sent most recently.
How do I take something like this:
$colname_rsSearch = "-1";
if (isset($_POST['first_name_now'])) {
$colname_rsSearch = $_POST['first_name_now'];
$colname2_rsSearch = "-1";
if (isset($_POST['last_name_now'])) {
$colname2_rsSearch = $_POST['last_name_now'];
$colname3_rsSearch = "-1";
if (isset($_POST['sonsName'])) {
$colname3_rsSearch = $_POST['sonsName'];
mysql_select_db($database_connStr_Milo_db, $connStr_Milo_db);
$query_rsSearch = sprintf("SELECT milo.first_name_now, milo.last_name_now,
milo.ws_number, milo.ws_number_3, milo.ws_number_4 FROM milo WHERE
milo.first_name_now = %s AND milo.last_name_now = %s AND (milo.sonsName1 =
%s) || (milo.sonsName2 = %s) || (milo.sonsName3 = %s)",
GetSQLValueString($colname_rsSearch,
"text"),GetSQLValueString($colname2_rsSearch,
"text"),GetSQLValueString($colname3_rsSearch,
"text"),GetSQLValueString($colname3_rsSearch,
"text"),GetSQLValueString($colname3_rsSearch, "text"));
$rsSearch = mysql_query($query_rsSearch, $connStr_Milo_db) or
die(mysql_error());
$row_rsSearch = mysql_fetch_assoc($rsSearch);
$totalRows_rsSearch = mysql_num_rows($rsSearch);
?> (I’ve excluded the IS NULL part from my example, but need it in the final
version)
…and make it work using your code below (which permits someone to search
with empty form fields, but does not yet enlighten me on what to group (with
parenthesis) to make the code execute the multiple column search and the IS
NULL parts of the search.
mysql_select_db($database_connStr_Milo_db, $connStr_Milo_db);
$expected = array('first_name_now', 'last_name_now', sonsName'
$query_search = 'SELECT milo.first_name_now, milo.last_name_now,
milo.ws_number, milo.ws_number_3, milo.ws_number_4 FROM milo';
$where = false;
foreach ($expected as $var) {
if (isset($_POST[$var]) && !empty($_POST[$var])) {
if ($where) {
$query_search .= ' AND ';
} else {
$query_search .= ' WHERE ';
$where = true;
$query_search .= '(' . $var . ' = '. GetSQLValueString($_POST[$var],
'text') .
' OR ' . $var . ' IS NULL)';
$search = mysql_query($query_search, $connStr_Milo_db) or
die(mysql_error());
$row_search = mysql_fetch_assoc($search);
$totalRows_search = mysql_num_rows($search);
As always, thank you. -
I am converting our BO Universe to OBIEE. There exist in the Universe an object which select COUNT(DISTINCT inventory_item_id) and has a WHERE CLAUSE that gives a date range.
Going to OBIEE, how can I apply this WHERE CLAUSE to the object only? I can't find a place where to set this up. What I found was the WHERE CLAUSE box in the content tab of the table source. I wouldn't like to place it here because this WHERE CLAUSE should only fire when this object is selected by the user in his report.
I would appreciate your help very much.
Thank you.Hi,
I created a report filter instead and saved it. I noticed one thing when I tested this. It took a while for the report to be generated. Is there a way I could do improve on the performance? This is what I placed in the report filter:
CURRENT_DATE >= IFNULL("- Price List Lines"."Item Start Date" , CURRENT_DATE ) AND CURRENT_DATE < IFNULL("- Price List Lines"."Item End Date", TIMESTAMPADD( SQL_TSI_DAY , CURRENT_DATE , 1))
Thank you.
Maybe you are looking for
-
Can we use Time Machine to back up data on Time Capsule from the outside of network?
I have Time Capsule at home. Can I use Time Machine to back up data of portable nootebook when I am working at office?
-
My itunes is not working at all and i can't get the new itunes sistem, what can I do?
I try to connect my iPod and I couldn't because I didn't update my iTunes, I try to downloaded and it said that I need a some different system so I try to install iTunes 10.6.8 and I couldn't open it and now I can't play any songs, what can I do
-
IWork not syncing with iCloud on iPad
Okay, I am having the same problem a lot of people have been having. Namely, my iWork documents are not properly syncing with iCloud. They're stuck on either upload or download. Sometimes, I'll get a document to download, but it immediately begins to
-
Download PDF file from Application Server in BSP
Hello, We have a requirement on which we want to download a PDF file stored in Application server using BSP application. I have used function module ARCHIVFILE_SERVER_TO_CLIENT but this FM will help only if i want to download file from GUI it won't
-
this is so frustrating. I can't hear the responses over the road noise so instead, I must look at the screen and read her responses (Safety first, right). Why just siri? all the other functions output audio through my car's speakers, but someone d