by using the stored procedure in sql statement?
I have the following sample tables:project id project name
====== ===============
1 project one
2 two project
3 three of the project
employee_id fname lname
=========== ============= =====
Amy 100a
Better B 200
Carrie 300 C
project number
=========== ===========
1,200 people
2 300
of 3 100
There's a getFullname (empployee_id) of the procedure in place that combines the fname lname full name
what I need to accomplish is the following.
project is created by employee
==============================
project a is created by better b
two project is created by carrie C
three project is created by amy A
but the rule is: you need to call the getFullName (employee_id) procedure to perform the above task and do not use join tables to get the employee full name
I suspect that you want something along the lines of
SELECT 'Project ' || p.project_name || ' was created by ' || get_full_name( pe.employee_id )
FROM project p,
project_employee pe
WHERE p.project_id = pe.project_id
If you need other attributes in the employee table, you can join at the table of the employees as well.
Justin
Tags: Database
Similar Questions
-
Use the stored procedure to create the data model for the bi publisher report
Hi all
Can we use stored procedure to create the data model for BI Publisher reports? I did find an example by using the stored procedure to complete the data model in the bi publisher report.
Thank you
ViratCheck out these links
BI publisher to use the stored procedure
Re: Stored procedures and dynamic columns
Re: Is it possible to use stored procedures in BI Publisher GUI?
Re: PL/SQL stored w / model XML?If brand pls help
-
Cross-Schema insert by using the stored procedure
Hi all.
I am currently migrating 11.2.0.1 to 11.2.0.3,
and I have to deal with an unexpected privileges error "ORA-13199: insufficient privilege for the table in the application of the xxx model."
While inserting triplets in the table in the application of the model
using a stored procedure which is
owned by the owner of model table and app,
but called by another issued user.
There has never been a problem 10.2.0.4 or 11.2.0.1.
It seems that something has really changed, (perhaps an authid pragma or something like this in the code internal SDO_RDF_TRIPLE?)
The two users are needed on my system for security policy reasons.
Here's a simplified script to reproduce the success on 1.2.0.1 and error on 11.2.0.3.
Users are: ADMWAT = model, USEWAT = calling application
SQL > connect SYS/xxxxx@DB_*11201*.world as sysdba
Connected.
SQL > select value of MDSYS. RDF_PARAMETER where namespace = "MDSYS" and the attribute = "SEM_VERSION";
VALUE
--------------------------------------------------------------------------------
* 112 *.
SQL >
SQL > connect ADMWAT/xxxxx@DB_11201.world
Connected.
SQL > CREATE TABLE family_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S);
Table created.
SQL >
SQL > exec SEM_APIS.create_rdf_model ('family', 'family_rdf_data', 'three');
PL/SQL procedure successfully completed.
SQL >
SQL > GRANT INSERT ON family_rdf_data in MDSYS.
Grant succeeded.
SQL >
SQL > create or replace PROCEDURE NEW_TRIPLE IS
BEGIN 2
3 INSERT INTO family_rdf_data VALUES (1,
4 SDO_RDF_TRIPLE_S ('family',
5 "http://www.example.org/family/John."
6 "http://www.example.org/family/fatherOf."
7 'http://www.example.org/family/Suzie'));
8 END;
9.
Created procedure.
SQL >
SQL > GRANT EXECUTE ON NEW_TRIPLE to USEWAT;
Grant succeeded.
SQL >
SQL > connect ADMWAT/xxxxx@DB_11201.world
Connected.
SQL > exec ADMWAT. NEW_TRIPLE();
PL/SQL procedure successfully completed.
SQL > rollback;
Complete restoration.
SQL >
SQL > connect USEWAT/xxxxx@DB_11201.world
Connected.
SQL > exec ADMWAT. NEW_TRIPLE();
PL/SQL procedure successfully complete.
SQL >
SQL >
SQL >
************************************************************************************************************
************************************************************************************************************
************************************************************************************************************
SQL > connect SYS/xxxxx@DB_*11203*.world as sysdba
Connected.
SQL > select value of MDSYS. RDF_PARAMETER where namespace = "MDSYS" and the attribute = "SEM_VERSION";
VALUE
--------------------------------------------------------------------------------
* 11203 *.
SQL >
SQL > connect ADMWAT/xxxxx@DB_11203.world
Connected.
SQL >
SQL > CREATE TABLE family_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S);
Table created.
SQL >
SQL > exec SEM_APIS.create_rdf_model ('family', 'family_rdf_data', 'three');
PL/SQL procedure successfully completed.
SQL >
SQL > GRANT INSERT ON family_rdf_data in MDSYS.
Grant succeeded.
SQL >
SQL > create or replace PROCEDURE NEW_TRIPLE IS
BEGIN 2
3 INSERT INTO family_rdf_data VALUES (1,
4 SDO_RDF_TRIPLE_S ('family',
5 "http://www.example.org/family/John."
6 "http://www.example.org/family/fatherOf."
7 'http://www.example.org/family/Suzie'));
8 END;
9.
Created procedure.
SQL >
SQL > GRANT EXECUTE ON NEW_TRIPLE to USEWAT;
Grant succeeded.
SQL >
SQL > connect ADMWAT/xxxxx@DB_11203.world
Connected.
SQL > exec ADMWAT. NEW_TRIPLE();
PL/SQL procedure successfully completed.
SQL > rollback;
Complete restoration.
SQL >
SQL > connect USEWAT/xxxxx@DB_11203.world
Connected.
SQL > exec ADMWAT. NEW_TRIPLE();
BEGIN ADMWAT. NEW_TRIPLE(); END;
*
ERROR on line 1:
ORA-55303: SDO_RDF_TRIPLE_S constructor failed:
SQLERRM = ORA-13199: insufficient privilege for the application of the model family table [
ORA-06512: at the 'MDSYS. MD", line 1723
ORA-06512: at the 'MDSYS. MDERR", line 17
ORA-06512: at the 'MDSYS. SDO_RDF_TRIPLE_S', line 41
]
ORA-06512: at the 'MDSYS. MD", line 1723
ORA-06512: at the 'MDSYS. MDERR", line 17
ORA-06512: at the 'MDSYS. SDO_RDF_TRIPLE_S', line 68
ORA-06512: at "ADMWAT. NEW_TRIPLE', line 3
ORA-06512: at line 1
SQL >
Published by: damien.claveau on March 26, 2012 02:02Damien,
Please submit a Service request for this issue in Support of Oracle.
Meanwhile, until a patch will be available, another possible solution, you could consider to use is to grant the DBA role to ADMWAT.
If you want, please contact me directly by email: souripriya das at oracle dot com dot
Thank you
-Smiled. -
We use the procedure attached to within an ASP application obfuscation of the password database. I am able to use the same procedure in CF without modification? Right now, I have tried with cfstoredproc but'm "Procedure 'dt_External_Encrypt' expects parameter '@Encrypted', which was not supplied."
You do not use the ODBC driver.
Most likely, there is a typing error in the code or the stored procedure is not also displayed (or a copy).
Change procedure = "dt_External_Encrypt" to procedure = "dbo.dt_External_Encrypt" "
Open Query Analyzer, 'Edit' code stored procedure and make sure that it is really such displayed.
Finally, try changing returnCode 'no '.
If all else fails, join the code exact CF code and code from Query Analyzer.
-
Using the stored procedure: Source does not have a target executable
I'm a guy from MS - SQL, so I'm fairly familiar with T - SQL syntax, but feels a heck of a time trying to take the code I wrote for SQL and turn this works with Oracle.
in any case, I'm using Oracle SQL Developer, and I have a stored procedure that calls the Alter Table statement and adds a column. Just trying to get this one to work before moving on to the other that I have. I get the message that source does not have a target executable when I try to run this command.
create or replace PROCEDURE rta_conv_addcolumn (rtatablename1 in varchar (20),)
rtatablename2 in varchar (20),
rtacolumnname in varchar (256),
rtacolumninfo in varchar (256))
AS
DECLARE rtasql VARCHAR (4000);
BEGIN
IF EXISTS (SELECT * from user_tables WHERE table_name = rtatablename1)
AND NOT EXISTS (SELECT * from user_tab_columns WHERE column_name = rtacolumnname)
AND table_name = rtatablename1)
AND NOT EXISTS (SELECT * from user_tab_columns WHERE column_name = rtacolumnname)
AND table_name = rtatablename2)
Then rtasql: = ' ALTER TABLE ["+ rtatablename2 +"] ADD "+ rtacolumnname +" "+ rtacolumninfo;
Run (rtasql);
END rta_conv_addcolumn;
If I try to compile I get the following messages, which make no sense, since the syntax I use to declare the input variables seems to be good.
Error (1.54): PLS-00103: encountered the symbol "(" quand attend une deles de valeurs suivantes:: =.), @ default % of the characters of the symbol ': = ' has been replaced by "(" pour continuer.)
Error (2.29): PLS-00103: encountered the symbol "(" quand attend une deles de valeurs suivantes:: =.), @ default % of the characters of the symbol ': = ' has been replaced by "(" pour continuer.)
Error (3.29): PLS-00103: encountered the symbol "(" quand attend une deles de valeurs suivantes:: =.), @ default % of the characters of the symbol ': = ' has been replaced by "(" pour continuer.)
Error (4.29): PLS-00103: encountered the symbol "(" quand attend une deles de valeurs suivantes:: =.), @ default % of the characters of the symbol ': = ' has been replaced by "(" pour continuer.)
Error (6.1): PLS-00103: encountered the symbol "DECLARE" when expecting one of the following: begin function package pragma procedure < an ID > subtype type use < a between double quote delimited identifiers of > form current cursor external language the symbol 'start' is substituted for 'SAID' continue.
Error (15.5): PLS-00103: encountered the symbol "RTA_CONV_ADDCOLUMN" when expects it one of the following values: IfAdds the column to the table specified in rtatablename1, if there is neither rtatablename1 nor rtatablename2.
NOT TESTED
create or replace PROCEDURE rta_conv_addcolumn(rtatablename1 in varchar, rtatablename2 in varchar, rtacolumnname in varchar, rtacolumninfo in varchar) AS rtasql VARCHAR(4000); count1 number; count2 number; count3 number; BEGIN SELECT count(*) into count1 FROM user_tables WHERE table_name = rtatablename1; SELECT count(*) into count2 FROM user_tab_columns WHERE column_name = rtacolumnname AND table_name = rtatablename1; SELECT count(*) into count3 FROM user_tab_columns WHERE column_name = rtacolumnname AND table_name = rtatablename2; IF count1>0 AND count2 = 0 AND count3=0 Then rtasql:= 'ALTER TABLE '|| rtatablename1 ||'ADD ' || rtacolumnname || ' ' || rtacolumninfo; Execute immediate rtasql; END IF; END rta_conv_addcolumn; /
Max
Published by: Massimo Ruocchio, December 12, 2009 02:15
Missing AND -
selection of lines by using the stored procedure
All the
At the risk of asking something obvious, I would like to know if it is possible to wrap a selection within a stored procedure.
Create the abc as procedure
Start
date of b;
Select sysdate into double b;
end;
/
Question: I have a select complex which should be called from JAVA. I don't want to create a VIEW since at the request of the view, indeed I will do so: SELECT * FROM (my original query) which leads to performance.
I would like to be able to:
exec has;
This should give me the result of
SELECT
x, z, c
Of
one
;
How can I make this possible a stored procedure?
Thank you
Well, yes there are ways to do it, but first of all, you are mistaken in thinking that select * from
, would lead to a performance overhead. The optimizer based on CSSTidy will optimize the request to provide results without worrying so there is no noticeable performance difference. Java, you probably want to use a ref cursor and get java to retrieve the results back.
Example of refcursor function (demonstrated SQL * more I don't have Java)...
SQL > create or replace function test RETURN as sys_refcursor
cur_o 2 sys_refcursor;
3. start
4. open cur_o to select empno, ename from emp;
5 return cur_o;
6 end;
7.The function is created.
SQL > var r refcursor;
SQL > exec: r: = test();PL/SQL procedure successfully completed.
SQL > print r;
EMPNO, ENAME
---------- ----------
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
KING 7839
7844 TURNER
7876 ADAMS
JAMES 7900
7902 FORD
7934 MILLER14 selected lines.
-
How to test the stored procedure in SQL Developer or SQL Plus
Hello
It's small, but I am confused. Can someone give me the EXACT command to run to test my stored procedure described below. Please don't refer me to the documentation or offer some sort of pseudocode. I've been through the documentation - and through it again - and I just don't get it. I know that the procedure works in general because I'm calling ColdFusion, but I want to test developer SQL or SQL more before I call my ColdFusion page - it only makes sense. I'm probably not initialize variables right or something - not sure.
You will see that it is a line right insert in the firstname and lastname data base and there are 2 IN OUT values as well. Please use a fake name for the firstname and lastname values to demonstrate. I appreciate it!
create or replace
procedure sp_insertDirector_A)
vFirstname IN Directors.Firstname%TYPE,
vLastname IN Directors.Lastname%TYPE,
vInsertStatus in on NUMBER,
vNewDirectorID IN OUT NUMBER
)
IS
row_count NUMBER;
BEGIN
SELECT Count (*) FROM directors WHERE Lastname vLastname = row_count;
IF row_count > 0 THEN
vInsertStatus: = - 1;
RETURN;
END IF;
INSERT INTO administration)
FirstName, Lastname)
VALUES)
vFirstname, vLastname
);
SELECT Directors_Seq.CURRVAL INTO vNewDirectorID FROM DUAL;
vInsertStatus: = 1;
END;
If someone can tell me exactly how to test, I'd appreciate it. I asked on another site and got many responses that I tried and did not work due to various errors. Once I get a working example, I'm sure I can get the idea and continue on. I mainly use the SQL Developer.
Thank you, mallethead
p.s. I think that my if - THEN followed by the instruction INSERT is fixed - it is woring. Seems a little odd to me however.declare l_instatus number; l_newdirid number; begin sp_insertDirector_A('bob','smith',l_instatus,l_newdirid); dbms_output.put_line(l_instatus); dbms_output.put_line(l_newdirid); end; /
-
use the stored procedure VARIABLE in an ODI procedure
Hello
I have a stored procedure that takes custId as an input parameter and returns the age as output parameter.
custId is a varaible ODI that we spend during execution.
I want to insert the age value in a table.
declare
cust_age customer_details.age%type;
Start
FETCH_CUSTOMER_DATA(#Customer.CustomerID,cust_age);
end;
INSERT INTO CUSTOMER_AGE VALUES(#customerid,*cust_age*)
Thank you.Hello
Just use the insert in an ODI procedure in an anonymous pl/sql block.
I mean:
declare
cust_age customer_details.age%type;
Start
FETCH_CUSTOMER_DATA(#Customer.CustomerID,cust_age);
INSERT INTO CUSTOMER_AGE VALUES(#customerid,*cust_age*);
end;
Ok?
Cezar Santos
http://odiexperts.com -
Problem to INSERT INTO using the stored procedure in 10g
I use a 10g R2 database.
I created two tables as follows:
SQL > create table t1 (c1 varchar2 (1), number (1) c2, c3 number (1);)
SQL > create table t2 (deptid varchar2 (4), empid varchar (4), varchar2 (1) c1, c2 number (1) c3 number (1);)
insert into t1 values ('A', 3, 5);
insert into t1 values ('B', 5, 5);
insert into t1 values ('C', 5, 5);
I want to create a stored procedure to insert data into table t1 t2 and certain parameters of the procedure.
Is this possible?
As an example:
SQL > execute test (1,2)
This procedure will be insert these two parameters in table t2 AND select rows in table t1 and insert into table t2 at the same time.
How can I write the procedure?
Tip:
SQL > create or replace procedure
(v_deptid, v_empid number)
is
BEGIN
Insert into t2 (deptid, empid, c1, c2, c3)
... Select c1, c2, c3 from t1;
end;
My question is: How can I insert the v_deptid and v_empid parameters at the same time?Try
SQL > create or replace procedure
(v_deptid, v_empid number)
is
BEGIN
Insert into t2 (deptid, empid, c1, c2, c3)
Select v_deptid, v_empid, c1, c2, c3 to t1;
end; -
The stored procedure PL/SQL - t - it accept the custom Ref Cursor type?
I am not able to compile the following procedure in the HR schema comes with default oracle... I use Oracle 11g Release 11.2.0.2.0 Express edition. It gives me an error (given after the code block):
Block of code:
CREATE OR REPLACE PROCEDURE TEST_REF IS
DECLARE
TYPE REF_EMP IS REF CURSOR RETURN % ROWTYPE EMPLOYEES;
RF_EMP REF_EMP;
V_EMP EMPLOYEES % ROWTYPE;
BEGIN
DBMS_OUTPUT. ENABLE (1000000);
OPEN FOR RF_EMP
SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID > 100;
EXTRACT THE RF_EMP IN V_EMP;
DBMS_OUTPUT. PUT_LINE (V_EMP. FIRST_NAME. ' ' || V_EMP. LAST_NAME);
CLOSE RF_EMP;
EXCEPTION
WHILE OTHERS
THEN DBMS_OUTPUT. PUT_LINE (SQLERRM);
END TEST_REF;
/
Error:
Errors in PROCEDURE TEST_REF:
LINE/COL ERROR
-------- -----------------------------------------------------------------
2/1 PLS-00103: encountered the symbol "DECLARE" when waiting for an a
What follows:
Start function < an ID > pragma procedure subtype type
< between double quote delimited identifiers > delete the current cursor
There are the external language prior
The symbol 'start' is substituted for 'DECLARE' continue.
16/13 PLS-00103: encountered the symbol "end-of-file" when waiting for him
one of the following values:
(begin case declare exit end exception for goto if loop mod)
pragma raise return null select update while withGet rid of the DECLARED:
SQL> CREATE OR REPLACE PROCEDURE TEST_REF IS 2 TYPE REF_EMP IS REF CURSOR RETURN HR.EMPLOYEES%ROWTYPE; 3 RF_EMP REF_EMP; 4 V_EMP EMPLOYEES%ROWTYPE; 5 BEGIN 6 DBMS_OUTPUT.ENABLE(1000000); 7 OPEN RF_EMP FOR 8 SELECT * FROM EMPLOYEES WHERE EMPLOYEE_ID > 100; 9 FETCH RF_EMP INTO V_EMP; 10 DBMS_OUTPUT.PUT_LINE(V_EMP.FIRST_NAME || ' ' || V_EMP.LAST_NAME); 11 CLOSE RF_EMP; 12 EXCEPTION 13 WHEN OTHERS 14 THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); 15 END TEST_REF; 16 / Procedure created. SQL> set serveroutput on SQL> exec TEST_REF; Donald OConnell PL/SQL procedure successfully completed. SQL>
SY.
-
Maximum number of parameters sent to the stored procedure
I have a web form where I insert data in Oracle. There are at least 20 fields on the form. For the INSERT, I want to use the stored procedure. But in this case for the section of the VALUES in the INSERT statement, I need to send that many - in this case 20 settings. Is it normal for a procedure to receive 20 parameters? If this isn't the case, then should how I follow to do? I know that technically there is only no problem but isn't normal programming or database managementwise? I think it's the basic thing any developer web do it all the time.Is it normal for a procedure to receive 20 parameters?
Sure. It is very good.
But what is normal programming or database managementwise
If you need to insert values for 20 fields then normal.
-
can I export and import my database to oracle via the stored procedure?
Hi all
I need to export my database using the stored procedure, the stored procedure is called by the java application and it works well
Now I still get the "ULTIMATE QUESTION", could export and import the database using the stored procedure?
Really thanks for the reply.
Kind regards
KahlilHello
I think you can use DBMS_DATAPUMP (10.1 +), see [DBMS_DATAPUMP | http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_datpmp.htm#i1007277], for examples, see [http://www.psoug.org/reference/dbms_datapump.html]
Kind regards
-
Hello
I have a problem to transfer content to an XML file in a MS SQL database through a stored procedure data/fixed. I am able to transfer the content of the file using method...
HSTMT = DBPrepareSQL (hdbc, EXEC usp_InsertReport "
... ");resCode = DBExecutePreparedSQL (hstmt);
resCode = DBClosePreparedSQL (hstmt);
... but in this case, I am not able to read the return value of the stored procedure.
I tried to follow the example of the stored procedure in the help documentation (DBPrepareSQL), but I miss a xml data type?
No idea how to solve my problem?
Cake of KR
DianaS salvation,
Thanks for your comments. During this time I found another way which fullfill my needs:
resCode = DBSetAttributeDefault (hdbc, ATTR_DB_COMMAND_TYPE, DB_COMMAND_TEXT);
sprintf (sz_SqlStatement, "DECLARE @TESTID INT EXEC @TESTID = usp_InsertReport ' SELECT 'RetVal' %s = @TESTID", sz_Buffer ");
HSTMT = DBActivateSQL (hdbc, sz_SqlStatement);While ((resCode = DBFetchNext (hstmt)) == DB_SUCCESS)
{
/ * Enter values in the record. */
resCode = DBGetColInt (hstmt, 1, & s32_TestId);
}resCode = DBDeactivateSQL (hstmt);
sz_Buffer is the content of the XML file.
Cake of KR
-
How to call a stored procedure PL/SQL of the Disqualification?
I figured I could do this from a Groovy script but I am unable to make it work.
Let's take the simplest scenario:
At the end of a job, I have a need to call an once stored procedure that has no arguments.
Translated by the logic of the stored procedure with Disqualification is not an option.
If you must call it once at the end of a task, you must use the external task.
If you call a procedure for each record, it can be done using a script.
-
user_table should be used in the stored procedure.
Hello
I want to find my permanent table user_tables and then drop and recreate it,
I can use this user_tables in my stored procedure for above purpose or is there any notice that must be used.
SP is admin sp, used to run in offline mode.
yorus truly
Published by: 944768 on 10 February 2013 23:44
Published by: 944768 on 10 February 2013 23:44944768 wrote:
but I wanted to know that can I use user_table in above proc stored to conclude and then drop and create it when Everitt runs?Oracle manages two "flavors" of the stored procedure - copyright and rights of the Summoner. Rights of the DEFINER (default) is always performed under stored security area of the owner of the procedure no matter who calls it. So, if you ask USER_TABLES (or any display USER_, besides) within DEFINER rights stored procedure, you will get a list of tables owned by the owner of the stored procedure, not stored calling procedure. Rights (AUTHID CURRENT_USER) stored Invoker procedure is always carried out under the domain of the calller security. Therefore, if you are querying USER_TABLES (or any display USER_, besides) within the Summoner rights stored procedure you will get a list of tables belonging to the appellant a stored procedure. Hope it answers your question.
SY.
Maybe you are looking for
-
Is it a hardware problem or software?
Anonymous UUID BAE5983A-B2EF-3784-052F-794830D23D75 Mon 8 August 13:03:21 2016 Panic report *. panic (cpu 4 0xffffff80169ce6fa appellant): Kernel trap at 0xffffff8016c4760c, type 13 = General protection, records: CR0: 0X000000008001003B, CR2: 0X00000
-
Hello I have a MAC book pro 10.6.2 and I was wondering if I could update them with the latest software? Whenever I click on software update, rebooted my laptop, it doesn't let me log on. Any help would be great! Thank you
-
where are bookmarks after Firefox Sync?
I seem to have synchronized successfully my with my Office Firefox android device. The settings of Firefox android show 'Connected' enabled, and I have a date and time of last update. However, I don't see the bookmarks (or other other data sync). Cou
-
Controller Raid SATA for Satellite P850
Hi all We bought a Satellite P850 with Windows 7 Home Premium on it. Because we are a business, we wanted to install Professional on this topic. It seemed to work the first time tempted, but now even if BIOS can see the hard drive, installing windows
-
HP Compaq Mini 110: Reset password BIOS HP Compaq Mini 110
Hello: Help, please My HP mini 1000 now asking for a bios password. After 3 try a me check failed and display code below CNU0073YD Help, please Thank you Alex