Dynamic query exception
How to handle dynamic query exception
in my dynamic query say if i pass the wrong table name it is showing some errors instead i would like to use my own error statement as output
eg:
mytable :test_table
declare mytable varchar2 :=test_table1234 --(which is not present in DB)
begin
execute immediate ('select * from '|| mytable);
-- Error handling here
end;
I wouldn't use WHEN OTHERS, not unless you want to be fired for breaking coding standards. If you insist, at least follow it with RAISE.
Here is a an exposition of the problem, http://www.orafaq.com/wiki/WHEN_OTHERS and another http://tkyte.blogspot.co.uk/2008/06/when-others-then-null-redux.html
Similar Messages
-
How to create custom BOL object for dynamic query in CRM 7.0
Hi,
Could anyone please explain me with steps that how to create the custom BOL object for dynamic query in CRM 7.0, I did it in previous version but its throwing exception when i try to create the object of my dynamic query class. I just defined the entry of my in crmv_obj_btil to create the dynamic query BOL object. do i need to do any other thing also to make it work?
Regards,
Kamesh Bathla
Edited by: Kamesh Bathla on Jul 6, 2009 5:12 PMHi Justin,
First of thanks for your reply, and coming to my requirement, I need to report the list of items which are there in the dynamic select statement what am getting from the DB. The select statement number of columns may vary in my example for different countries the select item columns count is different. For US its '15', for UK it may be 10 ...like so, and some of the column value might be a combination or calculation part of other table columns (The select query contains more than one table in the from clause).
In order to execute the dynamic select statement and return the result i choose to write a function which will parse the cursor for dynamic query and then iterate the values and construct a Type Object and append it to the pipe row.
Am relatively very new for these sort of things, welcome in case of any suggestions to make it simple (Instead of the function what i thought to work with) also a sample narrating the new procedure will be appreciated.
Thanks in Advance,
mallikj2. -
Converting rows to columns using dynamic query.
I am trying to use the below code that I founnd on the web to conver rows to columns. the reason that I want to use dynamic query is that the number of rows are not know and changes.
declare
lv_sql varchar2(32767) := null ;
begin
lv_sql := 'SELECT Iplineno ';
for lv_rec in (SELECT distinct vendor from bidtabs where letting = '10021200' and call ='021')
loop
lv_sql := lv_sql
|| CHR(10)
|| ', MAX( DECODE( vendor, '
|| chr(39)
|| lv_rec.vendor
|| CHR(39)
|| ', bidprice, NULL ) ) as "'
|| lv_rec.vendor
|| '" ' ;
end loop;
lv_sql := lv_sql
|| CHR(10)
|| 'FROM bidtabs where letting = ''10021200'' and call = ''021'' and lineflag = ''L'' '
|| CHR(10)
|| 'GROUP BY iplineno ;' ;
here is the result
BIDPRICE CALL IPLINENO LETTING VENDOR
9,585 021 0010 10021200 C0104
1,000 021 0020 10021200 C0104
1,000 021 0030 10021200 C0104
17 021 0040 10021200 C0104
5 021 0050 10021200 C0104
11,420 021 0010 10021200 K0054
1,100 021 0020 10021200 K0054
1,100 021 0030 10021200 K0054
5 021 0040 10021200 K0054
3 021 0050 10021200 K0054
8,010 021 0010 10021200 V070
900 021 0020 10021200 V070
1,320 021 0030 10021200 V070
11 021 0040 10021200 V070
3 021 0050 10021200 V070
and here is the desired output
CALL IPLINENO LETTING C0104 K0054 V070
021 0010 10021200 9,585 11,420 8,010
021 0020 10021200 1,000 1,100 900
021 0030 10021200 1,000 1,100 1,320
021 0040 10021200 17 5 11
021 0050 10021200 5 3 3Here is the error message I am getting:
RA-06550: line 22, column 43:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
begin case declare end exception 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
pipe -
Returning a result set/record from a dynamic query
There seems to be plenty of examples for using Native Dynamic Sql to formulate and execute a dynamic query, however there are no examples of returning a result set or records which contain the rows of data that are retrieved by executing the query. Could someone give us an example?
Welcome to the Oracle forum....
CREATE OR REPLACE PACKAGE curspkg_join AS
TYPE t_cursor IS REF CURSOR ;
Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor);
END curspkg_join;
Create the following Oracle package body on the Oracle server:
CREATE OR REPLACE PACKAGE BODY curspkg_join AS
Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor)
IS
v_cursor t_cursor;
BEGIN
IF n_EMPNO <> 0
THEN
OPEN v_cursor FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.EMPNO = n_EMPNO;
ELSE
OPEN v_cursor FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
END IF;
io_cursor := v_cursor;
END open_join_cursor1;
END curspkg_join;
Dim Oraclecon As New OracleConnection("Password=pwd;" & _
"User ID=uid;Data Source=MyOracle;")
Oraclecon.Open()
Dim myCMD As New OracleCommand()
myCMD.Connection = Oraclecon
myCMD.CommandText = "curspkg_join.open_join_cursor1"
myCMD.CommandType = CommandType.StoredProcedure
myCMD.Parameters.Add(New OracleParameter("io_cursor", OracleType.Cursor)).Direction = ParameterDirection.Output
myCMD.Parameters.Add("n_Empno", OracleType.Number, 4).Value = 123
Dim myReader As OracleDataReader
Try
myCMD.ExecuteNonQuery()
Catch myex As Exception
MsgBox(myex.Message)
End Try
myReader = myCMD.Parameters("io_cursor").Value
Dim x, count As Integer
count = 0
Do While myReader.Read()
For x = 0 To myReader.FieldCount - 1
Console.Write(myReader(x) & " ")
Next
Console.WriteLine()
count += 1
Loop
MsgBox(count & " Rows Returned.")
myReader.Close()
Oraclecon.Close()
The above code is working in one of our application; which is using ref cursor as result set and get from procedure. I hope you can found more code by google and/or search in this forum as well; if above code is not useful to you.
HTH
Girish Sharma -
Try catch implementation in dynamic query
I am fetching values by dynamic selection (select a,b,..from (var)...) .
Eveytime if I am selecting garbage value of var it will throw dump . Can u tell me how we implement try catch method / exception handling method so that I can avoid dump in dynamic query
Appropriate answer will rewarded with points that is for sure .Here is the usage of th try statements ...
PARAMETERS number TYPE i.
DATA: result TYPE p LENGTH 8 DECIMALS 2,
oref TYPE REF TO cx_root,
text TYPE string.
TRY.
IF ABS( number ) > 100.
RAISE EXCEPTION TYPE cx_demo_abs_too_large.
ENDIF.
PERFORM calculation USING number
CHANGING result
text.
CATCH cx_sy_arithmetic_error INTO oref.
text = oref->get_text( ).
CATCH cx_root INTO oref.
text = oref->get_text( ).
ENDTRY.
IF NOT text IS INITIAL.
WRITE / text.
ENDIF.
WRITE: / 'Final result:', result.
FORM calculation USING p_number LIKE number
CHANGING p_result LIKE result
p_text LIKE text
RAISING cx_sy_arithmetic_error.
DATA l_oref TYPE REF TO cx_root.
TRY.
p_result = 1 / p_number.
WRITE: / 'Result of division:', p_result.
p_result = SQRT( p_number ).
WRITE: / 'Result of square root:', p_result.
CATCH cx_sy_zerodivide INTO l_oref.
p_text = l_oref->get_text( ).
CLEANUP.
CLEAR p_result.
ENDTRY.
ENDFORM.
<b>please see this link for detailed explaination of the TRY & ENDTRY ...</b>
<a href="http://">http://help.sap.com/saphelp_nw04/helpdata/en/a9/b8eef8fe9411d4b2ee0050dadfb92b/content.htm</a>
reward points if it is usefull......
Girish -
Using jquery FullCalendar in APEX with dynamic query
Hi,
I am trying to implement jquery FullCalendar in APEX and came across thie following post but I am unable to get the events to work. I would really like to see it working with an Application_Process:
How we can highlight events in Calendar
Currently I created an Application Process that simply calls a DB table and convert it into json format.
DECLARE
v_sql varchar2(400);
BEGIN
v_sql := 'SELECT * FROM CAL_FEED';
apex_util.json_from_sql(v_sql);
END;
But I am unsure how to add the events via an Application_Process.
I have tried the following in numerious ways (events:function, url feed, etc). It does work if I just do an array but would like it as a dynamic query.
$('#calendar').fullCalendar({
events: "http://server:8080/apex/f?p=101:53:4352610578859707:APPLICATION_PROCESS=IAT_TEST_CAL_FEED"
Thank you in advance,
JimmyHi,
I was able to get the events into Fullcalendar with an Application Process but not sure if this would scale well with alot of events.
Would someone be able to tell me if there is a better way?
I am currently using an On Demand Application Process called IAT_TEST_FEED:_
DECLARE
lv_cal_list VARCHAR2(16000);
lv_return_str VARCHAR2(32000);
BEGIN
FOR i IN (SELECT "CAL_FEED"."ID" as ID,
"CAL_FEED"."title" as caltitle,
"CAL_FEED"."start" as calstart,
"CAL_FEED"."end" as calend
FROM "CAL_FEED")
LOOP
lv_cal_list := lv_cal_list || '{"id":' || CHR(39) || i.ID || CHR(39) || ',' ||
' "title":' || CHR(39) || i.caltitle || CHR(39) || ',' ||
' "start":' || CHR(39) || i.calstart || CHR(39) || ',' ||
' "end":' || CHR(39) || i.calend || CHR(39) || '},';
END LOOP;
lv_return_str := '[' || RTRIM(lv_cal_list,',') || ']';
htp.prn(lv_return_str);
EXCEPTION WHEN OTHERS THEN
htp.prn('error');
END;
In a HTML Region on a page within the Region Header:_
<link rel="stylesheet" type="text/css" href="#WORKSPACE_IMAGES#fullcalendar.css" />
<script type="text/javascript" src="#WORKSPACE_IMAGES#ui.core.js"></script>
<script type="text/javascript" src="#WORKSPACE_IMAGES#ui.draggable.js"></script>
<script type="text/javascript" src="#WORKSPACE_IMAGES#ui.resizable.js"></script>
<script type="text/javascript" src="#WORKSPACE_IMAGES#jquery.js"></script>
<script type="text/javascript" src="#WORKSPACE_IMAGES#fullcalendar.js"></script>
<script type="text/javascript" src="#WORKSPACE_IMAGES#fullcalendar.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#calendar').fullCalendar({
events: function(start, end, callback) {
$.ajax({
type: "POST",
url: "wwv_flow.show",
dataType: "json",
data: {
p_flow_id:$('#pFlowId').val(),
p_flow_step_id:$('#pFlowStepId').val(),
p_instance:$('#pInstance').val(),
p_request:"APPLICATION_PROCESS=IAT_TEST_FEED"
success:function(calevents){
$.each(calevents, function(i, calevent){
$('#calendar').fullCalendar('renderEvent', calevent, true);
</script>
The line within the ajax call is basically where my concern would be
$('#calendar').fullCalendar('renderEvent', calevent, true);
Thank you,
Jimmy -
Can't create dynamic query that runs!
Hi all,
I am attempting to create a dynamic query to go against my Oracle Db with preparedstatement. I tried many other ways also and have exhausted everything I can think of or find. My query works when I put it together with a text editor after it has been output by my program, but won't work as is. It seems like it is splitting it up somehow.
Here is the code...Is there any way to get this query together?
Object objectName1 = (String) rapArray.get(0);
StringBuffer query = new StringBuffer("SELECT end_phrase FROM rap_lines WHERE start_phrase IN ");
String teststring = objectName1.toString();
query.append("('" + teststring + "'");
for (int i=1; i < initArraySize; i++){
objectName1 = (String) rapArray.get(i);
teststring = objectName1.toString();
********the problem somehow seems to lie HERE where the file is separating just after "teststring" is added********
query.append(", '" + teststring + "'");
query.append(")");
System.out.println(query);
ResultSet rs = stmt.executeQuery(new String(query));
returnArray = new ArrayList();
while (rs.next()) {
s = rs.getString("end_phrase");
System.out.println(s);
Here is the query it outpus and how it seems to be separated...when put together, it works fine.
SELECT end_phrase FROM rap_lines WHERE start_phrase IN ('Your Pops caught you smoking and he said NO WAY!
', 'Its getting hot in here.
', 'Im the cream of the crop. I rise to the top.', 'WHA?
', 'Youz a big fine woman.
', 'That car dont come out till next year!
', '$80,000 plus CHROME!
', 'Sippin on gin and juice. Laid Back
', 'All I wanna do is a zoom zoom zoom and a boom boom!
', 'Rollin in my six-fo...')Hi.
The only possibility that I can see here is that the Strings in rapArray have return characters at the end.
Once you've solved that, here are two miscellaneous pieces of advice:
1. The value of objectName1 is always a reference to a String. So, declare objectName1 a String. Also, don't do objectName1.toString() - this has no effect except for making the code a little more difficult to read. When you've done these things, you'll probably find the need for testString disappears.
2. There is a special markuo to put around code when submitting it to the forums. See the 'code' markup at http://forum.java.sun.com/faq.jsp#messageformat
Regards,
Lance
Lance Walton - [email protected]
Team In A Box - Software without Tragedy
http://www.teaminabox.co.uk -
Help on performance with dynamic query
Hi All,
We are using SQL Server 2008R2. In our one of report we are using Dynamic query and it is taking more time to retrieve the data. to retrieve 32 records it is taking 13-15 secs. In my observation in a table variable, created more than 60 columns. In
the SP called one more sp with insert statement.
Please let me know how i can improve performance of the SP.
I know that i have to provide the SP for observation but unfortunately I cannot provide the SP. Please guide me how i can achieve this .
I tried with temp tables by creating indexes on temp tables but i couldn't find improvement in performance.
Waiting for valuable replies.First of all a "dynamic query" is not "a query" - it is a multitude of them. Some of them may be fast, others may be slow.
There is of course no way we can give specific suggestions without seeing the code, the table and index definitions etc.
We can only give the generic suggestions. As for the code, make sure that you are using parameterised SQL and you are not building a complete SQL string with parameters and all. If nothing else, this helps to make the code more readable and maintainable.
It also protects you against SQL injection. And it also helps to prevent performance issue due to implicit conversion.
You will need to look at the query plan to see where the bottlenecks may be. You should look at the actual query plan. Note that the thickness of the arrows are more relevant than the percentages you see; the percentages are only estimates, and estimates
are often off. Next step is to see if you can add indexes to alleviate the situation. You should also analyse if there are problems in the query, for instance indexed columns that are entangled in expression. If you are using views, make sure that you don't
have views built on top of views etc. This can often result a table appearing multiple times in a query, when one would be enough.
Erland Sommarskog, SQL Server MVP, [email protected] -
How to find table name(s) in a dynamic query
In one of our (9iAS PORTAL)applications, any user can able to run their query statment and get output. All queries will be executed as dynamic SQL thru' a common shema/user who has 'SELECT' privilege on all tables but all users don't have this privilege on all tables. Now, before executing any query I need to find out what are the table name(s) used in this query to check the privilege for the respective user. How do I extract all table names being used in a dynamic query?.
Thanks
-KrishnamurthyI guess that his users log in to application first, then application uses one account to log in to database, so application are not direct database user since all users share the same account to database. If so, when a user lgins in, you may write it down from application to a database audit table, and you need to write down the dynamic query to the database audit table too, then you may query that audit table to find out. up to here, it looks that your application has to do more to assign what role to a user running the application, since database does not know what user is assessing it.
-
Hello All,
We are using a two tier architecture.
Our Corp server calls the refinery server.
Our CORP MII server uses user id abc_user to connect to the refinery data server.
The user id abc_user has the SAP_xMII_Dynamic_Query role.
The data server also has the checkbox for allow dynamic query enabled.
But we are still getting the following error
Error has occurred while processing data stream
Dynamic Query role is not assigned to the Data Server; Use query template
Once we add the SAP_xMII_Dynamic_Query role to the data server everything works fine. Is this feature by design ?
Thanks,
KiranThanks Anushree !!
I thought that just adding the role to the user and enabling the dynamic query checkbox on the data server should work.
But we even needed to add the role to the data server.
Thanks,
Kiran -
Hi all;
Can u please help me on the following dynamic query code ? I know I am missing the single quote around 2 dates but could not figure out where to put it ! I have tried putting 2 or 3 quotes around 2 bind vars but to no avail.
Want to create a dynamic query to simulate the the following:
select
EMPNO,ENAME,JOB,MGR,HIREDATE from emp where HIREDATE >= to_date('01/01/1981','MM/DD/YYYY') and HIREDATE <= to_date('12/31/1982','MM/DD/YYYY');
dynamic code:
declare
v_q varchar2(4000);
begin
v_q :='select EMPNO,ENAME,JOB,MGR,HIREDATE from emp ';
V_q := V_Q
|| 'where HIREDATE >= '
|| 'to_date(' || :P_DATE1 || ',' ||'''MM/DD/YYYY''' || ' )'
|| 'and HIREDATE <= '
|| 'to_date(' || :P_DATE2 || ',' ||'''MM/DD/YYYY''' || ' )';
-- end the sql
v_q := v_q ||';';
dbms_output.put_line ('V_Q is ' || V_Q);
end;
Thanks.
Zendeclare
v_q varchar2(4000);
v_rec emp%rowtype;
v_cur sys_refcursor;
begin
v_q :='select EMPNO,ENAME,JOB,MGR,HIREDATE from emp ';
V_q := V_Q || 'where HIREDATE >= to_date(:P_DATE1,''MM/DD/YYYY'') and HIREDATE <= to_date(:P_DATE2,''MM/DD/YYYY'')';
dbms_output.put_line ('V_Q is ' || V_Q);
open v_cur
for v_q
using '01/01/1981',
'12/31/1982';
loop
fetch v_cur
into v_rec.empno,
v_rec.ename,
v_rec.job,
v_rec.mgr,
v_rec.hiredate;
exit when v_cur%notfound;
dbms_output.put_line('empno = ' || v_rec.empno);
dbms_output.put_line('ename = ' || v_rec.ename);
dbms_output.put_line('job = ' || v_rec.job);
dbms_output.put_line('mgr = ' || v_rec.mgr);
dbms_output.put_line('hiredate = ' || to_char(v_rec.hiredate,'MM/DD/YYYY'));
dbms_output.put_line('====================');
end loop;
close v_cur;
end;
V_Q is select EMPNO,ENAME,JOB,MGR,HIREDATE from emp where HIREDATE >=
to_date(:P_DATE1,'MM/DD/YYYY') and HIREDATE <= to_date(:P_DATE2,'MM/DD/YYYY')
empno = 7499
ename = ALLEN
job = SALESMAN
mgr = 7698
hiredate = 02/20/1981
====================
empno = 7521
ename = WARD
job = SALESMAN
mgr = 7698
hiredate = 02/22/1981
====================
empno = 7566
ename = JONES
job = MANAGER
mgr = 7839
hiredate = 04/02/1981
====================
empno = 7654
ename = MARTIN
job = SALESMAN
mgr = 7698
hiredate = 09/28/1981
====================
empno = 7698
ename = BLAKE
job = MANAGER
mgr = 7839
hiredate = 05/01/1981
====================
empno = 7782
ename = CLARK
job = MANAGER
mgr = 7839
hiredate = 06/09/1981
====================
empno = 7839
ename = KING
job = PRESIDENT
mgr =
hiredate = 11/17/1981
====================
empno = 7844
ename = TURNER
job = SALESMAN
mgr = 7698
hiredate = 09/08/1981
====================
empno = 7900
ename = JAMES
job = CLERK
mgr = 7698
hiredate = 12/03/1981
====================
empno = 7902
ename = FORD
job = ANALYST
mgr = 7566
hiredate = 12/03/1981
====================
empno = 7934
ename = MILLER
job = CLERK
mgr = 7782
hiredate = 01/23/1982
====================
PL/SQL procedure successfully completed.
SQL> SY. -
Dynamic Query to display a page of records at a time
I need some help creating procedure with a dynamic query that will query a table and pass out a certain number of records (like records 101 - 200 of 20,000). This procedure will receive the column names, table name, where clause, page number and number of records per page. It will then pass back the requested records to be displayed on a PHP page.
Pseudo Code:
Select Dynamic_Columns, ROWNUM
Into Dynamic_Pl_Sql_Table
From Dynamic_Table
Where Dynamic_Where_Clause
Total_Records_Out := Dynamic_PL_Sql_Table.Count
Modulus := Mod(Total_Records_Out, Total_Records_Per_Page_In)
Total_Pages_Out := (Total_Records_Out - Modulus) / Total_Records_Per_Page_In
If Modulus > 0 Then
Total_Pages_Out + 1
End If
Row_Start = Page_Number_In * Total_Records_Per_Page_In
Row_End = Row_Start + Total_Records_Per_Page_In
Results_Out = Dynamic_Pl_Sql_Table(Row_Start ... Row_End)
Any help with this will be appreciated!Maybe this will help you
1) If the Serial is 0 then page break
2) total_rows gives you total number of rows selected.
3) you can apply where clause to this and it will give you appropriate records.
select empno, ename, sal,
mod(row_number() over (order by null),5) serial,
count(*) over () tot_rows from emp ed
EMPNO ENAME SAL SERIAL TOT_ROWS
7369 SMITH 800 1 14
7499 ALLEN 1600 2 14
7521 WARD 1250 3 14
7566 JONES 2975 4 14
7654 MARTIN 1250 0 14
7698 BLAKE 2850 1 14
7934 MILLER 1300 2 14
7788 SCOTT 3000 3 14
7839 KING 5000 4 14
7844 TURNER 1500 0 14
7876 ADAMS 1100 1 14
7900 JAMES 950 2 14
7902 FORD 3000 3 14
7782 CLARK 2450 4 14
14 rows selected.SS -
Dynamic query in where clause while looping in an internal table.
Hi,
Had a small question : How can i make a dynamic query for the WHERE clause while looping at an internal table.
i want to implement a dynamic where clause query for the below example.
it_cfx_col is an internal table and wa_cfx_col is a work area for it_cfx_col
DATA :
i_cfx_col TYPE TABLE OF cfx_col,
wa_cfx_col LIKE LINE OF i_cfx_col.
DATA : count TYPE i VALUE 0.
DATA : l_where_clause TYPE string,
l_where_clause2 TYPE string,
l_name type string.
l_name = 'NANDANOM'.
l_scenario = 'collaboration'.
LOOP AT it_cfx_col INTO wa_cfx_col
WHERE CREATED_BY = l_name
AND SCENARIO = l_scenario.
count = count + 1.
some business logic implemented using the work area wa_cfx_col
endloop.
Now i want to write a dynamic query for the where clause.
DATA : count TYPE i VALUE 0.
DATA : l_where_clause TYPE string,
l_where_clause2 TYPE string,
l_name type string.
l_name = 'NANDANOM'.
l_scenario = 'collaboration'.
l_where_clause = 'CREATED_BY = l_name'.
l_where_clause2 = 'AND SCENARIO = l_scenario'.
if l_scenario is not initial.
CONCATENATE l_where_clause l_where_clause2
INTO l_where_clause SEPARATED BY space.
endif.
LOOP AT i_cfx_col INTO wa_cfx_col
WHERE (l_where_clause).
count = count + 1.
some business logic implemented using the work area wa_cfx_col
endloop.
when i compile this i get an error message as { Statement concluding with "...(l_where_clause)" ended unexpectedly}
Even i changed the initilization of the variable l_where_clause2 to [ l_where_clause2 = 'AND SCENARIO = l_scenario.'. ]
added the end of line demarkation ".", but still i got the same error message.
Is it a limtation in ABAP that i cannot write a dynamic query for the where clause while looping at an internal table?
Regards,
omHi savita,
there in no such 1 limitaion in abap for dynamic query .. i think the error meassge is only beacuse of your synatx delcartaion.
>> LOOP AT i_cfx_col INTO wa_cfx_col
WHERE (l_where_clause).
count = count + 1.
some business logic implemented using the work area wa_cfx_col
endloop.
afted delclarataion also , in the where statement you should specify both the field name and value bname
LOOP AT i_cfx_col INTO wa_cfx_col
WHERE l_where_clause = 'CREATED_BY = l_name' .
count = count + 1.
hope it helps.
regads
priya. -
Dynamic Query
When I run the following dynamic query in the stored procedure and try to build the report then I get the following error Rep:1401 Fatal PL/SQL error occured, Ora-00936 Missing expression. When I am generating the report standalone using the following query , everything is working fine but in Stored procedure , it's giving me the above error, pls help.
create or replace package REP_DELIVERY_LOC_STATISTICS is
TYPE REP_DELIVERY_LOC_STAT_rec IS RECORD(
p_coordinating_facility_id sis_education_pgm_session.coordinating_facility_id%TYPE,
p_PSE_MUNICIPALITY_ID pse_education_pgm_session.PSE_MUNICIPALITY_ID%TYPE,
p_pse_education_pgm_session_id sis_education_pgm_session.pse_education_pgm_session_id%TYPE,
p_course_session_id course_session.course_session_id%TYPE);
TYPE REP_DELIVERY_LOC_STAT_cur IS REF CURSOR RETURN REP_DELIVERY_LOC_STAT_rec;
Type REP_DELIVERY_LOC_STAT_cur_Dyn is REF CURSOR;
FUNCTION REP_DELIVERY_LOC_STATISTICS(p_college_id IN pse_education_pgm_session.delivery_institution_id%TYPE,
p_start_date IN pse_education_pgm_session.session_strt_dte%TYPE,
p_end_date IN pse_education_pgm_session.session_strt_dte%TYPE,
p_coord_facility_join IN varchar2) return REP_DELIVERY_LOC_STAT_cur_Dyn;
end REP_DELIVERY_LOC_STATISTICS;
create or replace package body REP_DELIVERY_LOC_STATISTICS is
FUNCTION REP_DELIVERY_LOC_STATISTICS(p_college_id IN pse_education_pgm_session.delivery_institution_id%TYPE,
p_start_date IN pse_education_pgm_session.session_strt_dte%TYPE,
p_end_date IN pse_education_pgm_session.session_strt_dte%TYPE,
p_coord_facility_join varchar2) return REP_DELIVERY_LOC_STAT_cur_Dyn IS
REP_DELIV_LOC_STAT_CUR_Dyn_Q REP_DELIVERY_LOC_STAT_cur_Dyn;
BEGIN
OPEN REP_DELIV_LOC_STAT_CUR_Dyn_Q FOR
'SELECT distinct
seps.coordinating_facility_id,
peps.PSE_MUNICIPALITY_ID,
seps.pse_education_pgm_session_id,
cs.course_session_id
FROM pse_education_pgm_session peps,
sis_education_pgm_session seps,
course_session cs,
facility fac,
desc_sis_reporting_area depa,
desc_sis_reporting_type dept,
pse_education_program pep
WHERE peps.delivery_institution_id (+) = ' || p_college_id
|| ' and peps.session_strt_dte between ' ||p_start_date||' and ' || p_end_date
|| ' and seps.coordinating_facility_id = fac.facility_id (+)
and seps.pse_education_pgm_session_id (+) = peps.pse_education_pgm_session_id
and seps.pse_education_pgm_session_id = cs.pse_education_pgm_session_id (+)
and pep.pse_education_program_id = peps.pse_education_program_id
and dept.desc_sis_reporting_area_id = depa.desc_sis_reporting_area_id
and pep.desc_sis_reporting_type_id = dept.desc_sis_reporting_type_id
and dept.desc_sis_reporting_area_id = depa.desc_sis_reporting_area_id
and fac.desc_facility_id in (2,3)' || NVL (p_coord_facility_join, '1=1');
return REP_DELIV_LOC_STAT_CUR_Dyn_Q;
END;
end REP_DELIVERY_LOC_STATISTICS;I would sugest to grab a book like
Inside Microsoft SQL Server 2008 T-SQL Querying (chapter 12 - Graphs, Trees, Hierarchies and Recursive Queries) or
Joe Celko's Trees and Hierarchies in SQL for Smarties to get familiar with how model hierarchies using SQL.
What is the meaning of the asterisks in the path?
Here is a dirty example using the Adjacency List model.
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.T1 (
id int NOT NULL UNIQUE CLUSTERED,
name varchar(50),
rootid int NULL
INSERT INTO dbo.T1 (id,name,rootid)
SELECT 1, 'animals', NULL
UNION ALL
SELECT 2, 'mamal', 1
UNION ALL
SELECT 3, 'cephalopod mollusc', 1
UNION ALL
SELECT 4, 'salt water fish', 1
UNION ALL
SELECT 5, 'fresh water fish', 1
UNION ALL
SELECT 6,'whale', 2
UNION ALL
SELECT 7,'pirana', 5
UNION
SELECT 8,'shark', 4
UNION
SELECT 9, 'octopus', 3;
GO
WITH Tree AS (
SELECT
id, name, rootid,
CAST('/' + [name] + '/' AS varchar(900)) AS mat_path
FROM
dbo.T1
WHERE
rootid IS NULL
UNION ALL
SELECT
C.id, C.name, C.rootid, CAST(P.mat_path + C.name + '/' AS varchar(900))
FROM
Tree AS P
INNER JOIN
dbo.T1 AS C
ON P.id = C.rootid
SELECT
FROM
Tree
ORDER BY
mat_path;
GO
DROP TABLE dbo.T1;
GO
Excuse my poor knowledge of zoology or animal biology.
AMB
Some guidelines for posting questions...
AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas -
How to create an LOV based on a dynamic query
Hi,
Can someone tell me how to query a dynamic query for LOV. On my base page I have a dropdown-box (that will show the table names for searching) and is dynamically populated based on users access e.g. if user A logs in he may see 5 values (these values are basically table names) in a drop down if user B logs in he may see 10 values. I also have two input fields one field a user can enter value and the other field is read only and a torch icon for LOV so the user can search and select values that are populated in the input fields on the base page.
How can I have my LOV that takes in a value selected in the dropdown and anyvalue entered in one of the input fields and search in the table selected in the dropdown box.
Basically my LOV should do a search on the table and some search value passed when clicking on the torch icon. So a user can select any table-name in the drop down and my LOV should do a search only on the selected table. Once on the LOV Popup want to have a search field there but it only searched on the table selected in the dropdown on the based page. And the selected value on the LOV Popup page gets populated in fields on the base page.
Any help is appreciated.
ThanksHi,
I have created 4 SQL Based VO's with the following sqls
SELECT header_id AS ID, to_char(order_number) AS NAME
FROM oe_order_headers_all
SELECT party_id AS ID, party_name AS NAME
FROM hz_parties
SELECT quote_header_id AS ID,
(quote_number || CHR (45) || quote_version) AS NAME
FROM aso_quote_headers
SELECT sales_lead_id AS ID, to_char(lead_number) AS NAME
FROM as_sales_leadsI created on LOVRegin and have the following 2 messagestyle items now what do I set in the ViewInstance and View Attribute fields
srcid
srcname
Can you provide some sample code to set ViewUsage and whereclause that I need to put in the controller of LOVRegion.
Thanks
Maybe you are looking for
-
Simple WebService Creation using JDeveloper 11.1 Technology Preview 2
Hi, I like the way JDeveloper simplifies the web service creation using the wizards and allows to test the web services from the IDE itself. I have the following issues when I tried the step-by-step tutorial (http://www.oracle.com/technology/obe/obe1
-
How to create a Dropdown in webdynpro
Hi , I am a beginner in Webdynpro , Java . Request you to plz help me .. My requirements - 1. How to create a dropdownbyindex in a view and populate it with some static values passed to the Context . 2. Upon selection of a value from the dropdown and
-
My Mac does not respond during login
I am using OS 10.5.2 My iMac does not respond during login. After the desktop and dock are shown, the ball (cursor) keep rotating. I can do nothing except moving the cursor. All application including finder do not respond. Is there any solution? Than
-
Change background color of a selected line of text in textfield
I have a list of items in a dynamic text field. When a line is clicked I would like to highlight it, or change the background color. Any ideas?
-
CD Burn Application has vanished from Applications Folder? Cannot burn a CD!
My CD Burn Application is no longer appearing in my applications folder. I would like to burn a CD but cannot since I cannot locate the burn application and when I insert a blank CD it is not recognized by the computer.