Function that return the results of a select
Hi,
I would like to create a function on the famous HR oracle Departments table to select * from it. I don't know how to do it.
Does anybody can help me?.
Thank you
Oracle stored functions cannot directly return result sets but can return REF CURSOR. Please read [Optimize Result Set Retrieval Using ODP.NET and Ref Cursors |http://www.oracle.com/technology/pub/articles/mastering_dotnet_oracle/williams_refcursors.html] which gives full examples in PL/SQL for server side and in VB. Net for client side.
Similar Messages
-
Is there any function that returns the latest DDL statement
can anyone tell me if there is any FUNCTION that returns latest DDL statement performed in a schema.
OR
if there is any TABLE that will be populated with latest
DDL statement in schema.
THANK YOU.The table all_objects (and/or dba_objects) contains a column called last_ddl_time. Thus, a query like
scott@jcave > SELECT max(last_ddl_time)
2 FROM all_objects
3 WHERE owner = 'SCOTT';
MAX(LAST_DDL_TI
28-NOV-03will tell you the last time any object owned by SCOTT had DDL issued against it.
Justin
Distributed Database Consulting, Inc.
www.ddbcinc.com/askDDBC -
Function that returns the date/time ?
We would like to make a validation in the Activity status based on the activity End Time.
Pls... is there a function that returns something that I could compare with: "8/6/2009 01:00 PM" ?
I know of Today but I understand that today() returns just the day (no time).
Txs.
AntonioHi Antonio,
You can try using the function -: Timestamp()
To quote the CRM On Demand help files...
"+The Timestamp function in Expression Builder returns the server date and time converted to the current user's time zone setting. For example, if the current user's time zone setting is set to Eastern Daylight Time (EDT) -0400 UTC, the Timestamp function converts the server time to EDT. The TimeStamp function performs UTC (universal time code) conversion. NOTE: Arithmetic operations (for example, add or subtract) are not supported with the Timestamp() function.+"
Hope this helps.
Regards,
Cameron -
How to execute a function and return the result into a bind variable
Hi,
I am trying to calculate the sum of salaries of all persons with a particular JOB_ID using a function TOTAL_INCOME(v_job_id).
create or replace function total_income
+(v_job_id IN varchar2)+
RETURN number IS
v_total number(6);
cursor get_sal is
select salary from employees
where job_id = v_job_id;
BEGIN
v_total := 0;
for emp in get_sal
loop
v_total := v_total emp.salary;+
end loop;
dbms_output.put_line('Total salary of '||v_job_id||' is: '|| v_total);
return v_total;
END;
Now I woud like to execute this function and assign the returned value into a bind variable test_sal
variable test_sal number(6)
SELECT total_income('AD_VP') into :test_sal FROM DUAL;
dbms_output.put_line('Total Sal:'||:test_sal);
This is returning the below errors:
SELECT total_income('AD_VP') into :test_sal FROM DUAL
*+
Error at line 0
ORA-01036: illegal variable name/number
dbms_output.put_line('Total Sal:'||:test_sal);
Error at line 3
ORA-00900: invalid SQL statement
Could someone help me what could be the problem?? Thanks for your time...Dear,
If everything you will do will be done inside PL/SQL (stored procedure or stored function) then you don't have to care about bind variable.
When using PL/SQL (static SQL) you will never encounter issues related to bind variables. PL/SQL itself takes care of your code and uses bind variables behind the scene.
The only situation where you have to look carefully to the use of bind variables within PL/SQL is when you use Dynamic sql into stored procedures or functions.
So, see in the light of the above comment, if you have to care about returning your function into a bind variable?
Best regards
Mohamed Houri -
Looking for a function that returns the currently opened document type
Dear SAP gurus
I have a user exit for transaction VA02. In VA02, when I click on button (Item details-configuration),
it launches a URL in a browser. I am asked to add to the URL, values like Document Type, Document Number
and Line Item Number.
I can get Document Number and Line Item Number from the presently opened Sales Document by using the standard Function 'CUCB_GET_OWNER_OF_CFG'.
However, I am not able get the value of Document Type. Is there any function that will give me
the value of the Document type of the present document that is open.
Any feedback/Suggestion will be highly appreciated.
Thanks
RamIf you're in a VA02 user exit, the document type should be in VBAK-AUART, if I remember the field name correctly. I would think that ANYWHERE in VA02, that field will be available to you.
If you want the text of the document type, forward navigate from vbak-auart data element to the domain and look at the values...there'll be a config (T) table (and you may need to add T to the end to get the associated text table) that describes the document type in your system's language, like:
E OR Order
or something like that... Sorry, in my installation, we don't use the logistics modules, so I'm writing from memory. -
How do I return the results of two SELECT statements in to one result?
I want to do this without using UNION.
Here's an example of what I'm trying to do:
I have a table called COUNTRY with the following columns:
COUNTRY
COUNTRY_CODE
DATE_VISITED_LAST
POPULATIONI have another table called STATE_COUNTY with the following columns:
STATE_COUNTY
COUNTRY_CODE
STATE_COUNTY_CODE
DATE_LAST_VISITED
POPULATIONI have a third table called TOWN with the following columns:
TOWN
COUNTRY_CODE
STATE_COUNTY_CODE
TOWN_CODE
DATE_LAST_VISITED
POPULATIONNow through the interface I have, a user will supply a country code. I need a SELECT statement that will return a table with the following result set:
The COUNTRY_CODE entered including the DATE_LAST_VISITED and POPULATION for this country
------> All the associated STATE_COUNTY's belonging to this country along with the DATE_LAST_VISITED and POPULATION for each STATE_COUNTY_CODE.
-------------> All the associated TOWN_CODE's belonging to this state_county and country along with the DATE_LAST_VISITED and population for each TOWN.
So the table will have 9 columns:
COUNTRY
DATE_LAST_VISITED_COUNTRY
POPULATION_COUNTRY
STATE_COUNTY
DATE_LAST_VISITED_STATE_COUNTY
POPULATION_COUNTY
TOWN
DATE_LAST_VISITED_TOWN
POPULATION_TOWNAny ideas how this can be done?
Thanks.Hi guys,
Would it be ok to do it like this (with a join):
SELECT
c.country_code,
c.date_last_visited AS DATE_LAST_VISITED_COUNTRY,
c.population AS POPULATION_COUNTRY,
s.state_county_code,
s.date_last_visited AS DATE_LAST_VISITED_STATE_COUNTY,
s.population AS POPULATION_COUNTY,
t.town_code,
t.date_last_visited AS DATE_LAST_VISITED_TOWN,
t.population POPULATION_TOWN,
FROM
country c
LEFT OUTER JOIN state_county s ON s.country_code = c.country_code
LEFT OUTER JOIN town t ON t.country_code = s.country_code
AND t.state_county_code = s.state_county_codeThe results required would be something like:
Country_Code DATE_LAST_VISITED_COUNTRY POPULATION_COUNTRY STATE_COUNTY_CODE DATE_LAST_VISITED_STATE_COUNTY POPULATION_COUNTY TOWN_CODE DATE_LAST_VISITED_TOWN POPULATION_TOWN
UK 14-JAN-09 56,00000 London 18-JUL-99 23,0000 Ascot 30-JUN-89 12,000
Brixton 28-JAN-92 4,684
Birmingham 12-SEP-09 55,678 Solihull 12-OCT-81 6.768 Does this make sense?
Thanks!
Edited by: Sastry on Nov 2, 2009 2:04 AM -
Function that returns currently selected cell address or column
Is there a function that returns the address (or just the column) of the currently selected cell? Simply put, something like =selectedcolumn.
Background: I want to display help text in a cell, and I want that help text to change according to which cell (actually, which column) the user has selected. I have put the help texts in a hidden row. They take up too much space to be displayed all the time. I want one cell to contain the help text of the column of the currently selected cell.
Trying to not use Filemaker for this project if possible
Thanks for any help /MattThe Numbers method, using comments as Barry showed, is probably the best method. An alternate method which is more complex would be to use an Applescript running in the background. The Applescript can scan in the background for which cell/column is currently selected and write that cell/column address into a cell in your table. A formula in your table (most likely a lookup formula) can use that address to serve up the correct help text in a diffrerent cell in the table or in another table.
Some problems with this methodare
The script is not part of the document. It is a separate entity.
The script must be started manually. It will not automatically start when the Numbers document is opened.
If the Numbers document is to be used on other Macs, each would also need the script installed. -
Function to return the Entry Value based on Assignment, Element and Date
Hi Guys,
Is there a function that returns the Entry Value for the Assignment Element, based on the Assignment Number, Element Name, Entry Segment and the End of Period date?
Example:
==============
Input Parameters:
Employee: Iana
Assignment Num: 123
Element: D480
Element Entry: Fund Name
Output Parameter:
Element Entry Value: MLC Super Fund
Thanks,
IanaFor element entry values you can use:
select petf.element_name, nvl(peevf.screen_entry_value,0) screen_entry_value
from
pay_element_entries_f peef, pay_element_types_f petf,
pay_element_entry_values_f peevf, pay_input_values_f pivf,
per_all_assignments_f paaf
where petf.element_type_id = peef.element_type_id
and :p_date_earned between pivf.effective_start_date and pivf.effective_end_date
and :p_date_earned between petf.effective_start_date and petf.effective_end_date
and peevf.input_value_id = pivf.input_value_id
and paaf.assignment_id = peef.assignment_id
and petf.business_group_id = :p_business_group_id
and peevf.element_entry_id = peef.element_entry_id
and :p_date_earned between peef.effective_start_date and peef.effective_end_date
and :p_date_earned between peevf.effective_start_date and peevf.effective_end_date
and :p_date_earned between paaf.effective_start_date and paaf.effective_end_date
and pivf.name = :p_input_value_name
and petf.element_name = :p_element_name
and peef.entry_type = 'E'
and peevf.effective_start_date = peef.effective_start_date
and peevf.effective_end_date = peef.effective_end_date
--and peef.assignment_id = :p_assignment_id
and paaf.assignment_number = :p_assignment_number;
For payroll results you can use:
select sum(prrv.result_value)
from pay_run_results prr, pay_run_result_values prrv,
pay_assignment_actions paa, pay_payroll_actions ppa,
pay_element_types_f petf, pay_input_values_f pivf,
per_all_assignments_f paaf, per_all_people_f papf
where
petf.element_type_id = pivf.element_type_id
and :p_pay_date between petf.effective_start_date and petf.effective_end_date
and :p_pay_date between pivf.effective_start_date and pivf.effective_end_date
and paa.assignment_action_id = prr.assignment_action_id
and petf.element_type_id = prr.element_type_id
and ppa.payroll_action_id = paa.payroll_action_id
and prrv.input_value_id = pivf.input_value_id
and prr.run_result_id = prrv.run_result_id
and petf.element_name = :p_element_name
and pivf.name = :p_input_value_name
and ppa.date_earned = :p_pay_date
and papf.person_id = paaf.person_id
and nvl(prr.start_date,ppa.effective_date) between paaf.effective_start_date and paaf.effective_end_date
and nvl(prr.start_date,ppa.effective_date) between papf.effective_start_date and papf.effective_end_date
and paaf.assignment_id = paa.assignment_id
and papf.employee_number = :p_employee_number; -
Function-accept any datatype as an input param,return the result in cursor
I am trying to create a function which will accept any datatype as an input parameter and return the result in cursor.
Any thoughts?
I searched the web and came to know that there is a type called "ANYDATA" in Oracle 10g which will allow to accept any datatype variable.
But we are using oracle 8i.I believe you are looking for an implementation of "generic functions" (Java) or "templates" (C++) in PL/SQL. I believe there is no such language feature.
Perhaps the best solution would be to convert the incoming data into a common type, and then call a common function from each of the overloaded functions.
realWork (int n) { [work]; return result; }
myFunction (varchar2 v) { n = to_number(v); return realWork(n); }
myFunction (char c) { n = to_number(c); return realWork(n); }
myFunction (date d) { n = to_char(to_number(d)); return realWork(n); }
etc. ? -
What is the Function MOdule that returns the fields in database table order
Hello Folks
I have a dynamic internal table with fields ( which are not in order). I want to display them in the order of which they are present in the database table? Is there any function module that returns the fields in database order?
FAQ. Please search before posting your question.
Edited by: Suhas Saha on Oct 10, 2011 10:19 PMHi,
You can use this BAPI.
<b>BAPI_SALESORDER_GETLIST</b>
Reward if useful.
Regards,
Vimal -
SOLVED: How can I use or call a function that returns %ROWTYPE?
Hi
edit: you can probably skip all this guff and go straight to the bottom...In the end this is probably just a question of how to use a function that returns a %rowtype. Thanks.
Currently reading Feuerstein's tome, 5th ed. I've downloaded and run the file genaa.sp, which is a code generator. Specifically, you feed it a table name and it generates code (package header and package body) that will create a cache of the specified table's contents.
So, I ran:
HR@XE> @"C:\Documents and Settings\Jason\My Documents\Work\SQL\OPP5.WEB.CODE\OPP5.WEB.CODE\genaa.sp"
749 /
Procedure created.
HR@XE> exec genaa('EMPLOYEES');which generated a nice bunch of code, viz:
create or replace package EMPLOYEES_cache is
function onerow ( EMPLOYEE_ID_in IN HR.EMPLOYEES.EMPLOYEE_ID%TYPE) return HR.EMPLOYEES%ROWTYPE;
function onerow_by_EMP_EMAIL_UK (EMAIL_in IN HR.EMPLOYEES.EMAIL%TYPE) return HR.EMPLOYEES%ROWTYPE;
procedure test;
end EMPLOYEES_cache;
create or replace package body EMPLOYEES_cache is
TYPE EMPLOYEES_aat IS TABLE OF HR.EMPLOYEES%ROWTYPE INDEX BY PLS_INTEGER;
EMP_EMP_ID_PK_aa EMPLOYEES_aat;
TYPE EMP_EMAIL_UK_aat IS TABLE OF HR.EMPLOYEES.EMPLOYEE_ID%TYPE INDEX BY HR.EMPLOYEES.EMAIL%TYPE;
EMP_EMAIL_UK_aa EMP_EMAIL_UK_aat;
function onerow ( EMPLOYEE_ID_in IN HR.EMPLOYEES.EMPLOYEE_ID%TYPE)
return HR.EMPLOYEES%ROWTYPE is
begin
return EMP_EMP_ID_PK_aa (EMPLOYEE_ID_in);
end;
function onerow_by_EMP_EMAIL_UK (EMAIL_in IN HR.EMPLOYEES.EMAIL%TYPE)
return HR.EMPLOYEES%ROWTYPE is
begin
return EMP_EMP_ID_PK_aa (EMP_EMAIL_UK_aa (EMAIL_in));
end;
procedure load_arrays is
begin
FOR rec IN (SELECT * FROM HR.EMPLOYEES)
LOOP
EMP_EMP_ID_PK_aa(rec.EMPLOYEE_ID) := rec;
EMP_EMAIL_UK_aa(rec.EMAIL) := rec.EMPLOYEE_ID;
end loop;
END load_arrays;
procedure test is
pky_rec HR.EMPLOYEES%ROWTYPE;
EMP_EMAIL_UK_aa_rec HR.EMPLOYEES%ROWTYPE;
begin
for rec in (select * from HR.EMPLOYEES) loop
pky_rec := onerow (rec.EMPLOYEE_ID);
EMP_EMAIL_UK_aa_rec := onerow_by_EMP_EMAIL_UK (rec.EMAIL);
if rec.EMPLOYEE_ID = EMP_EMAIL_UK_aa_rec.EMPLOYEE_ID then
dbms_output.put_line ('EMP_EMAIL_UK lookup OK');
else
dbms_output.put_line ('EMP_EMAIL_UK lookup NOT OK');
end if;
end loop;
end test;
BEGIN
load_arrays;
end EMPLOYEES_cache;
/which I have run successfully:
HR@XE> @"C:\Documents and Settings\Jason\My Documents\Work\SQL\EMPLOYEES_CACHE.sql"
Package created.
Package body created.I am now trying to use the functionality within the package.
I have figured out that the section
BEGIN
load_arrays;
end EMPLOYEES_cache;
/is the initialization section, and my understanding is that this is supposed to run when any of the package variables or functions are referenced. Is that correct?
With that in mind, I'm trying to call the onerow() function, but it's not working:
HR@XE> select onerow(100) from dual;
select onerow(100) from dual
ERROR at line 1:
ORA-00904: "ONEROW": invalid identifier
HR@XE> select employees_cache.onerow(100) from dual;
select employees_cache.onerow(100) from dual
ERROR at line 1:
ORA-06553: PLS-801: internal error [55018]
HR@XE> select table(employees_cache.onerow(100)) from dual;
select table(employees_cache.onerow(100)) from dual
ERROR at line 1:
ORA-00936: missing expressionHe provides the code genaa.sp, and a very brief description of what it does, but doesn't tell us how to run the generated code!
Now, I have just done some googling, and it seems that what I am trying to do isn't possible. Apparently %ROWTYPE is PL/SQL, and not understood by SQL, so you can't call onerow() from sql. Correct?
So I try wrapping the call in an exec:
HR@XE> exec select employees_cache.onerow(100) from dual;
BEGIN select employees_cache.onerow(100) from dual; END;
ERROR at line 1:
ORA-06550: line 1, column 30:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PLS-00428: an INTO clause is expected in this SELECT statement
HR@XE> exec select table(employees_cache.onerow(100)) from dual;
BEGIN select table(employees_cache.onerow(100)) from dual; END;
ERROR at line 1:
ORA-06550: line 1, column 14:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
HR@XE> exec employees_cache.onerow(100)
BEGIN employees_cache.onerow(100); END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00221: 'ONEROW' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignoredNo joy.
Of course, now that I'm looking at it again, it seems that the way to go is indicated by the first error:
PLS-00428: an INTO clause is expected in this SELECT statement
So am I supposed to create a type of EMPLOYEES%ROWTYPE in a PL/SQL procedure, and the idea of this code, is that the first call to onerow() runs the initialiation code, which populates the cache, and all subsequent calls to onerow() (whether by my session or any other) will use the cache?
I've had a stab at this, but still, no joy:
create or replace procedure testcache is
emp employees%rowtype;
begin
select employees_cache.onerow(100) from dual into emp;
dbms_output.put_line('Emp id: ' || emp.employee_id);
end testcache;
show errors
HR@XE> @testcache.sql
Warning: Procedure created with compilation errors.
Errors for PROCEDURE TESTCACHE:
LINE/COL ERROR
4/9 PL/SQL: SQL Statement ignored
4/54 PL/SQL: ORA-00933: SQL command not properly ended
HR@XE>Have a feeling this should be really easy. Can anybody help?
Many thanks in advance.
Jason
Edited by: 942375 on 08-Feb-2013 11:45>
Ha, figured it out
>
Hopefully you also figured out that the example is just that: a technical example of how to use certain Oracle functionality. Unfortunately it is also an example of what you should NOT do in an actual application.
That code isn't scaleable, uses expensive PGA memory, has no limit on the amount of memory that might be used and, contrary to your belief will result in EVERY SESSION HAVING ITS OWN CACHE of exactly the same data if the session even touches that package.
Mr. Feuerstein is an expert in SQL and PL/SQL and his books cover virtually all of the functionality available. He also does an excellent job of providing examples to illustrate how that functionality can be combined and used. But the bulk of those examples are intended solely to illustrate the 'technical' aspects of the technology. They do not necessarily reflect best practices and they often do not address performance or other issues that need to be considered when actually using those techniques in a particular application. The examples show WHAT can be done but not necessarily WHEN or even IF a given technique should be used.
It is up to the reader to learn the advantages and disadvantages of each technicalogical piece and determine when and how to use them.
>
Now, I have just done some googling, and it seems that what I am trying to do isn't possible. Apparently %ROWTYPE is PL/SQL, and not understood by SQL, so you can't call onerow() from sql. Correct?
>
That is correct. To be used by SQL you would need to create SQL types using the CREATE TYPE syntax. Currently that syntax does not support anything similar to %ROWTYPE.
>
So am I supposed to create a type of EMPLOYEES%ROWTYPE in a PL/SQL procedure, and the idea of this code, is that the first call to onerow() runs the initialiation code, which populates the cache, and all subsequent calls to onerow() (whether by my session or any other) will use the cache?
>
NO! That is a common misconception. Each session has its own set of package variables. Any session that touches that package will cause the entire EMPLOYEES table to be queried and stored in a new associative array specifically for that session.
That duplicates the cache for each session using the package. So while there might be some marginal benefit for a single session to cache data like that the benefit usually disappears if multiple sessions are involved.
The main use case that I am aware of where such caching has benefit is during ETL processing of staged data when the processing of each record is too complex to be done in SQL and the records need to be BULK loaded and the data manipulated in a loop. Then using an associative array as a lookup table to quickly get a small amount of data can be effective. And if the ETL procedure is being processed in parallel (meaning different sessions) then for a small lookup array the additional memory use is tolerable.
Mitigating against that is the fact that:
1. Such frequently used data that you might store in the array is likely to be cached by Oracle in the buffer cache anyway
2. Newer versions of Oracle now have more than one cache
3. The SQL query needed to get the data from the table will use a bind variable that eliminates repeated hard parsing.
4. The cursor and the buffer caches ARE SHARED by multiple sessions globally.
So the short story is that there would rarely be a use case where ARRAYs like that would be preferred over accessing the data from the table. -
Function that returns N values, without using a string
Hi, how can i make a function that returns several valures (that hasn't a exact number of returned values, it could return 3 values, or 7) without using a string?
When i need to return several values from a function, i put the values inside a varchar like thus 'XXX,YYY,ZZZ' and so on. Don't know if this has a poor performance.
If you can supply simple examples for what im asking, i would be nice.
(without using a string)Can i create the type objects inside a package? If i
can, they will be local to the package, right?Yes, you're right.
Pipeline returns a row or several?You can use pipelined function in the same way you use table:
SELECT * FROM TABLE(pipelined_funct(agr1, agr2));
It returns results as separate rows. -
I need return the result of a query on a stored procedure
I need return the result of a query on a stored procedure, I mean when I execute a stored procedure it returns a result set as a select query.
Best regards...If you want some pl/sql code that can be used in a query as it were a table you may be interested in table functions:
SQL> create or replace type
2 t_emp is object (
3 name varchar2(30),
4 hire_date date,
5 salary number);
6 /
Tipo creato.
SQL> create or replace type
2 t_emptab is table of t_emp;
3 /
Tipo creato.
SQL> create or replace function tab_fun(p_dept in number)
2 return t_emptab is
3 e t_emptab;
4 begin
5 select t_emp(ename,hiredate,sal)
6 bulk collect into e
7 from emp
8 where deptno=p_dept;
9
10 return dip;
11 end;
12 /
Funzione creata.
SQL> select *
2 from table(tab_fun(20));
NAME HIRE_DATE SALARY
SMITH 17-DIC-80 800
JONES 02-APR-81 2975
SCOTT 09-DIC-82 3000
ADAMS 12-GEN-83 1100
FORD 03-DIC-81 3000A procedure cannot be used in a select statement.
Max
http://oracleitalia.wordpress.com -
Error with function that returns a rowtype...
i have a function that returns a rowtype. below is a simplified version:
create or replace function "GETC"
return mytable%rowtype
is
rec mytable%rowtype;
begin
rec.rowid := 1;
return rec;
end;
eventually i'll want to call this from java. but for now i'd settle for calling it from the XE web front end (and sqlplus).
SQLPLUS: i try to call it from sqlplus by first declaring a variable where i can store the return:
var a mytable%rowtype;
it instantly stops me saying that i can only declare a var of a particular type. so what do i do?
XE interface: i tried various ways to call getc(), but they were all unsuccessful. what should i be doing?
thanks so much for your time.
markoGiven a function like this:
CREATE OR REPLACE FUNCTION get_employee
( p_empno emp.empno%TYPE )
RETURN emp%ROWTYPE
AS
v_result emp%ROWTYPE;
BEGIN
SELECT * INTO v_result
FROM emp
WHERE empno = p_empno;
RETURN v_result;
END get_employee;You can call it within PL/SQL like this:
DECLARE
rec emp%ROWTYPE;
BEGIN
rec := get_employee(7902);
DBMS_OUTPUT.PUT_LINE(rec.ename);
END;However,
1. Unless there is a column named "ROWID" in the table (unlikely since it would conflict with the actual rowid and is therefore not allowed), the type will not have an attribute named "rowid".
2. "1" would not be a valid rowid anyway.
3. %ROWTYPE defines a PL/SQL type, which will not be recognised in other environments such as SQL and Java. -
I get an error when i try to execute a function that returns a date value
Hi,
I'm new in ODP.NET, i'm make a package that contains a function that returns a date i.e.
Package Body General_pkg is
Function Get_Day Return Date is
vd_day date;
Begin
select sysdate into vd_day from dual;
return vd_day;
end Get_Day;
End General_pkg;
i use the next code to execute the function:
OracleCommand cmdData = new OracleCommand("General_pkg.Get_Day", cnx);
cmdData.CommandType = Commandtype.StoredProcedure;
OracleParameter PRM;
PRM = new OracleParameter();
PRM.ParameterName = "VDATE";
PRM.OracleDbType = OracleDbType.Date;
PRM.Direction = ParameterDirection.ReturnValue;
cmdData.Parameters.Add(PRM);
try
cmdData.ExecuteNonQuery();
catch(OracleException e);
When i execute this code, i have and exception, which say "identifier GENERAL_PKG.Get_Day must be declare..."
Obviously the package is correctly created in ORACLE i tested first in sql plus and it works but in ODP.NET they don't recognize the package or the function i don't know... please help!!!OOOOOPSS.... i forgot that i change the user in my conecction string that's why it didn't work...
i guess i had to much beer last night.;. :)
thanks.
Maybe you are looking for
-
Interactive PDF button to export form data to separate PDF
Hi, I'm creating a 10 page interactive PDF. One page of the PDF is a questionnaire which i've made using form fields. I basically want the user to answer the questions in the form fields and then click a button on the page that will save that page (w
-
please let me know on how to set the document restriction: Printing: Allowed Commenting: Allowed Other options: Not Allowed regards, Sashi
-
HI, here we are using Process code : ME10 for PO creation Idoc. my problem is "idoc is not generated automatically", if we enter values manually idoc will gwt genarated. message control and partner profile every thing is correct,in the output conditi
-
Here is the process we follow: We get EDi823 from the Bank. we create the I-doc FINSTA01 which creates the data in the Payment advice. The customer pays by 2 fields- Actual Invoice number and reference which is a sales order number. What are the sett
-
How to find and replacing the path (url) given for data binding from type 'datasocket'
Hi everyone, I'm sorry to pose this question as my own knowledge is still very limited. I have an assignment (bachelor level). We were asked to adjust a plc program in step7 so that multiple of an existing sequence could be run indepently. The settin