ORA 04067: not performed, stored procedure 'PUBLIC '. Does not exist.
We are migratory forms 6i to 10 g. during execution of the forms on our premisesIt works well, but when we run same form of application server
We get error ORA 04067: not running, "PUBLIC" stored procedure. Does not exist.
We have applied the patch for BUG 5123798 , but still it does not work.
Note: We have no procedure named PUBLIC.
We came to the conclusion this problem % rowtype and type %
Forms with the procedures which have a % rowtype as in, setting out do not work. When we use the insert/update instead of using % rowtype everything works fine. It's a little weird. Some know this problem.
PROCEDURE insertbrs_ware_trans)
p_brs_mack_trans_rec brs_waretran_trans % ROWTYPE
)
IS
BEGIN
I'd really appreciate your help.
Thank you
Sandy
Hi Sandy
If you have applied the hotfix you did a "opatch apply.
To find out what has been applied making a 'lsinventory opatch.
Best
Torben
Tags: Fusion Middleware
Similar Questions
-
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 -
Why these stored procedures his does not work
Hi I'm new and I need help following SQL works correctly, but when I walked into a stored procedure me displays error
SELECT Por.PortalID,
Name,
Lower (LTrim (RTrim (SEOName))) SEOName,
IsParent,
Por.Parentid,
(Select Seoname
Portal port
Where Por.Parentid = Port.Portalid) Parentportalname;
SettingValue.SettingValue DefaultPage
Por PORTAL
JOIN SettingValue
ON Por.PortalID = SettingValue.settingtypeid
Where Settingtype = 'SiteAdmin '.
And Settingkey = 'PortalDefaultPage. '
his return:
Portald Name SEONAME ISPARENT ParentId parentportalname DefaultPage 1 by default by default 1 0 null Homepage It's my stored procedure
create or replace
Procedure Sp_Portalgetlist as
Start
SELECT Por.PortalID,
Name,
Lower (LTrim (RTrim (SEOName))) SEOName,
IsParent,
Por.Parentid,
(Select Seoname
Portal port
Where Por.Parentid = Port.Portalid) Parentportalname;
SettingValue.SettingValue DefaultPage
Por PORTAL
JOIN SettingValue
ON Por.PortalID = SettingValue.settingtypeid
Where Settingtype = 'SiteAdmin '.
And Settingkey = 'PortalDefaultPage ';
END SP_PORTALGETLIST;
When I compile with oracle sqldeveloper show this error:
- Error (4.1): PLS-00428: an INTO clause in this SELECT statement
I appreciate all the help
What about the compile error in a PL/SQL block a select statement has an additional part:
Select attr1, attr2...
in var1, var2,...
Of...
but you can also use your selection (without the) in a cursor:
procedure is...
cursor my_select is
Select...;
my_variable my_cursor % rowtype;
Start
Open my_cursor;
extract my_cursor in my_variable; -fails at the record and then one more found!
close my_cursor;
...
Good bye
DPT
-
Hello world
My version of DB is
BANNER
--------------------------------------------------------------------------------
Oracle Database 11 g Enterprise Edition Release 11.2.0.1.0 - 64 bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
AMT for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
I ran this command SYS and SCOTT as well. But I can't see the body of DBMS_PIPE package. So, how can I test DBMS_PIPE then? Please help, suggest something here.
@C:\app\BS\product\11.2.0\dbhome_1\RDBMS\ADMIN\dbmspipe.sql
Kind regards
BS2012.
Have you had a look at the script of dbmspipe.sql? Why not? After all, it's just an ASCII text file.
In any case the script is EXECUTED on the package to a role, execute_catalog_role. So only users who have gotten this role will be able to use the DBMS_PIPE of the judgment. You must login as SYS and grant EXECUTE to your username (do not grant them this role). Oracle made this way because the pipes can be voracious consumers of system resources.
Oh and drop the package from the SCOTT schema. It's just a recipe for confusion.
Cheers, APC
-
For loop stored procedure does not
Hello
I wrote a stored procedure that does not work (I mean do not display data)
I set serveroutput on option also.
If I run as a single SQL query its working very well. so please help
create or replace procedure show_empnos (p_deptno number)
is
emp_id emp. EMP_ID % TYPE;
cursor cur_emps is
Select emp_id emp where department_id = '12';
Start
for a cur_emps in
loop
dbms_output.put_line (emp_id);
end loop;
end;
See, when I ran that a single SQL interrogate data dosplayed
SQL > select emp_id from emp where department_id = '12';
EMP_ID
----------
* 101 *.
* 101 *.
* 101 *.
Help, please.You declare a local variable EMP_ID you initialize ever, so it will always be NULL.
In your cursor, you also select a column EMP_ID.The line
dbms_output.put_line(emp_id);
solve the use of uninitialized local variable and then print a NULL value (which would appear as a blank line in the output). Assuming you want to return the value of the column EMP_ID your cursor, you need
dbms_output.put_line(a.emp_id);
As a general approach, including local variables whose names match exactly in the name of a column will create problems on the line where you write the code assumes that you speak for column only to discover that the identifier is resolved to the local variable instead. If you need a local variable to store the EMP_ID, therefore, it would make much more sense to declare it as
l_emp_id emp.EMP_ID%TYPE;
While it is not accidentally get confused with the name of the column.
Finally, if department_id is a NUMBER, it should be compared to a number, not a string, i.e.
WHERE department_id = 12
Justin
-
FRM - 40735:PRE - stimulus to trigger unhandled FORM exception ORA-04067
FRM - 40735:PRE - raise trigger unhandled FORM exception ORA - 04067:not performed, stored, "PUBLIC. FND_TIMEZONES' does not exist.
After I connect to Applications and when I click on the responsibility, and when I'm in the form to retrieve the page from the browser, I get the above error.
If I click on any menu in the list, I automatically love journal. "your login has become invalid.
Help, please...ANUP,
A similar error is reported in (Bug # 2170796), and the fix is available in the APPCORE cumulative patch. This group of DNF patches, you're on? You have (Group of patches 3262159 - 11i.) FND. (H) applied?
Kind regards
Hussein -
Re-compile a package in a stored procedure
Hi all
We are using Oracle 10 g. I coded a stored procedure that does a lot of things which is re - create a materialized using the dynamic SQL view. However, when this materialized view is created, a package that this stored procedure must, becomes invalid. What is the syntax to recompile the package using the dynamic SQL? I tried something like script below, but I'm getting ' * ORA-24344: success with compilation error * "error message. I would like to re - build the package until it is used in this stored procedure.
Thank youDECLARE v_sql VARCHAR2 (1000); object_name VARCHAR2 (50) := 'TEST.PS2_FNS366'; BEGIN dbms_output.put_line('This is a test.'); v_sql := 'Alter package ' || object_name || ' compile package'; dbms_output.put_line (v_sql); EXECUTE IMMEDIATE v_sql; v_sql := 'Alter package ' || object_name || ' compile body'; dbms_output.put_line (v_sql); EXECUTE IMMEDIATE v_sql; END;
SeyedNormally, this means that STUDENT. V_BEN_REG_CASE_NUMBER references objects (tables and views) that has received the STUDENT SELECT on, but not with the WITH GRANT option. If this is the case, STUDENT may not grant other users access to this data.
If STUDENT. V_BEN_REG_CASE_NUMBER refers to tables A, B and C belonged to another user U, U have to
GRANT SELECT ON u.a TO student WITH GRANT OPTION; GRANT SELECT ON u.b TO student WITH GRANT OPTION; GRANT SELECT ON u.c TO student WITH GRANT OPTION;
If the STUDENT has these privileges, it will be able to grant access to his point of view V_BEN_REG_CASE_NUMBER other users.
Justin
-
Need to query in a stored procedure
Hi all
I need to create a stored procedure that does not take any parameter, it's simply an SP which only made the update.
I update two tables here twice, I update the tables matched_news and matched_news_industries under certain conditions.
I update two tables twice and after two update tables once, I need to update another table is gm_sector_activity_tracker table, in this update that I need
update of is_transfered = 'Y' where is_transfered = "M" but I need to update only the rows that are updated in above two updates.It means assume that my above two updated day to day only 4 rows, so I need to update the records in the gm_sector_activity_tracker table.
Here's the code for MS:
CREATE OR REPLACE PROCEDURE SI_UPDATE_SOURCES_LOGO_PDF AS
BEGIN
update of matched_news one
Set logo_source = (select distinct source_logo from news_sources
where channel_id = a.channel_id
and a.newS_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am')
and 'a.newS_type =' Reports
and a.LOGO_SOURCE is null
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177));
COMMIT;
update of matched_news_industries one
Set logo_source = (select distinct source_logo from news_sources
where channel_id = a.channel_id
and a.newS_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am')
and 'a.newS_type =' Reports
and a.LOGO_SOURCE is null
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177));
COMMIT;
/ * Once this is done, we need to update the table "gm_sector_activity_tracker" column is_transferred = 'Y' where is_transferred = am' one by one.* /
Matched_News update
source_name = value (select distinct (ltrim (rtrim (source_name))) of channel_source_type)
WHERE CHANNEL_ID = A.CHANNEL_ID
and ONTO_ID = a.ONTO_ID
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177)
and 'a.news_type =' Reports
and a.auto_status = 'Categorized'
and a.news_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am'))
where exists (select channel_source_type source_name
where channel_id = a.channel_id
and ONTO_ID = a.ONTO_ID
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177)
and 'a.news_type =' Reports
and a.auto_status = 'Categorized'
and a.news_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am'));
COMMIT;
Update matched_news_industries has
source_name = value (select distinct (ltrim (rtrim (source_name))) of channel_source_type)
WHERE CHANNEL_ID = A.CHANNEL_ID
and ONTO_ID = a.ONTO_ID
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177)
and 'a.news_type =' Reports
and a.auto_status = 'Categorized'
and a.news_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am'))
where exists (select channel_source_type source_name
where channel_id = a.channel_id
and ONTO_ID = a.ONTO_ID
and a.channel_id not in (6522,6835,6944,6945,6946,7189,8396,8397,8398,5395,9176,9177)
and 'a.news_type =' Reports
and a.auto_status = 'Categorized'
and a.news_id in (select news_id was in gm_sector_activity_tracker where is_transferred = am'));
COMMIT;
/ * Once this is done, we need to update the table "gm_sector_activity_tracker" column is_transferred = 'Y' where is_transferred = am' one by one.*.
END SI_UPDATE_SOURCES_LOGO_PDF;
Thank you
Your instructions to update, it's what you do:
MERGE INTO MATCHED_NEWS HAS
WITH THE HELP OF NEWS_SOURCES B
WE (A.CHANNEL_ID = B.CHANNEL_ID)
WHEN MATCHED THEN
UPDATE
SET A.LOGO_SOURCE = B.SOURCE_LOGO
WHERE A.NEWS_ID IN (NEWS_ID HAS SELECTION SUMMER)
OF GM_SECTOR_ACTIVITY_TRACKER
WHERE IS_TRANSFERRED = AM')
AND A.NEWS_TYPE = 'reports '.
AND A.LOGO_SOURCE IS NULL
AND A.CHANNEL_ID NOT IN (6522,
6835,
6944,
6945,
6946,
7189,
8396,
8397,
8398,
5395,
9176,
9177);
You can do the same for the other tables as separate MERGE one after the other.
-
appellant the pl/sql stored procedure
Jdev11g R2, ADF BC
I have a stored procedure 'COPY_BKG_E2I' and it has three input parameters to generate a new record in the database.
===========================================================================
I created the AM method as follows and defined as method of the client AM class:
=========================================================
helper method:
===========
protected void callStoredProcedure (String stmt, Object [] bindVars) {}
PreparedStatement st = null;
try {}
// 1. Create a JDBC PreparedStatement for
St = (PreparedStatement class) getDBTransaction () .createPreparedStatement ('start' stmt + ";"end;", 0);
If (bindVars! = null) {}
// 2. Loop on values for the bind variables passed, if any
for (int z = 0; z < bindVars.length; z ++) {}
// 3. Set the value of each variable binding in the statement
st.setObject (z + 1, bindVars [z]);
}
}
// 4. Execute the statement
st.executeUpdate ();
}
catch (SQLException e) {}
throw new Aexception.getLocalizedMessage (e);
}
{Finally
If (st! = null) {}
try {}
// 5. Close statement
St.Close ();
}
catch (SQLException e) {}
}
}
}
call the stored procedure:
{} public void callProcWithThreeArgs (String V_BKG_NO, String V_VESSEL_ARRIVED_REMARKS, Date V_ATA_POD_D)
callStoredProcedure ("COPY_BKG_E2I(?,?,?)", ")
New Object [] {V_BKG_NO, V_ATA_POD_D, V_VESSEL_ARRIVED_REMARKS});
}
Now, I created back bean and page fragment,
=================================
in my page fragment, I bind the field three entries to the bean back:
============================================
package olfms.view.backing;
Import oracle.adf.view.rich.component.rich.input.RichInputDate;
Import oracle.adf.view.rich.component.rich.input.RichInputText;
Import oracle.adf.view.rich.component.rich.output.RichOutputText;
public class saveBkgUpd {}
Private RichOutputText bkg_no;
Private RichInputDate arrive_date;
Private RichInputText arrive_remarks;
public saveBkgUpd() {}
Super();
}
{} public void setBkg_no (RichOutputText bkg_no)
This.bkg_no = bkg_no;
}
public RichOutputText getBkg_no() {}
Return bkg_no;
}
{} public void setArrive_date (RichInputDate arrive_date)
This.arrive_date = arrive_date;
}
public RichInputDate getArrive_date() {}
Return arrive_date;
}
{} public void setArrive_remarks (RichInputText arrive_remarks)
This.arrive_remarks = arrive_remarks;
}
public RichInputText getArrive_remarks() {}
Return arrive_remarks;
}
My question:
//?????? How to call the callProcWithThreeArgs with these three bkg_no; arrive_date; arrive_remarks; Help, please! Thank you!
?
}Check your imports
especially: import oracle.binding.BindingContainer;
This is the bean of tireimport oracle.adf.model.BindingContext; import oracle.binding.BindingContainer; import oracle.binding.OperationBinding; public class Test { public Test() { } public BindingContainer getBindings() { return BindingContext.getCurrent().getCurrentBindingsEntry(); } public String callProcedureProgramatically() { BindingContainer bindings = getBindings(); OperationBinding operationBinding = bindings.getOperationBinding("callProcWithThreeArgs"); operationBinding.getParamsMap().put("param1", "first value"); operationBinding.getParamsMap().put("param2", "second value") ; operationBinding.getParamsMap().put("param3", "third value"); Object result = operationBinding.execute(); if (!operationBinding.getErrors().isEmpty()) { return null; } return null; } }
-
BPEL does not receive "return value" of MS SQL, stored procedure
Hello
We are facing this problem citing a MS SQL stored procedure the BPEL (jdbc 1.2 driver). We have created the wsdl for the stored procedure correctly using a command line utility tool provided with Oracle SOA Suite.
But the question is THAT BPEL is not able to get the data present in the statement of "return" of the procedure. We receive null output. But it is able to extract the data from the output variable, if any. Case 1 below is for the return statement. Case 2 is for the output variable
Case 1: in the following, the output is returned using the return statement. The BPEL that calls this procedure is to obtain a NULL value as an answer to this.
ALTER PROCEDURE [dbo]. [AddNumbersRet]
-Add the parameters for the procedure
@Number1 int,
@Number2 int
AS
BEGIN
-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;
-Controls insert for procedure here
Return (@Number1 + @Number2);
END
Case 2: in the following, the output is returned using the SumOfNums output variable. The BPEL that calls this procedure is to obtain a correct answer.
ALTER PROCEDURE [dbo]. [AddNumbers]
@Number1 int,
@Number2 int,
@SumOfNums int output
AS
BEGIN
-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;
Set @SumOfNums = (@Number1 + @Number2);
END
Case 1 is a failure and case 2 is successful. We cannot change our procedures similar to case 1 to use variables of output because of dependencies on other applications.
All the world is facing this problem? This looks like a bug in BPEL. Please, share your experiences.
Thanks and greetings
Mohan
Published by: user10980910 on December 8, 2009 05:16There is a gap in the command line utility that was addressed in the adapter configuration (AS11gR1) Wizard. The API is a procedure, not a function, so does not return the query for the parameters that the utility made anything for the RETURN statement.
The adapter configuration wizard is unable to say if there is a RETURN statement either, but it provides the user with a check box that can be used to indicate the presence of the declaration. In the wizard, if you check the checkbox, a parameter is added to the XSD to the RETURN statement. In essence, the adapter will process the procedure as a function and you will get the value of the PERFORMANCE.
Usually, I wish to indicate that you certainly should NOT change the generated XSD. But you might be able to do it, by adding the necessary element to the OutputParameters for your RETURN statement. Add the following immediately AFTER the element of 'Lines', which occurs first in the XSD and BEFORE all items for the other none.
Use a value for the "
" that is meaningful to you. The wizard uses the name of the stored procedure with the name of the element. We could call this "RETURN_VALUE" or else if is more to your liking. Add the item after you generate the XSD using the command line utility, and then use the XSD when you model your BPEL processes. The WSDL should already have the content for this element handling. -
ORA-00942 Table or view does not exist when you run a procedure
Hello
I have a procedure called FND_GLOBAL under a scheme called APPS and I have granted execute privilege on this procedure to another schema called CIVICA
However when I run the procedure of the CIVIC scheme I get
ORA-00942 Table or view does not exist
ORA-06512 at APPS. FND_CORE_LOG, line 25
ORA-06512 at APPS. FND_GLOBAL, line 104
ORA-06512 at APPS. FND_GLOBAL, line 1620
ORA-06512 at APPS. FND_GLOBAL, line 2171
ORA-06512 at APPS. FND_GLOBAL, line 2313
I'm guessing that some of the sub components must also be given to the CIVICA?
How does work to define rights? Subcomponents should not also be accessible via this procedure being owner / defined by Apps but executed by CIVICA?
JimHi, Jim,.
Jim Thompson wrote:
Sorry Frank - in order to clarifyI wanted to CIVICA to be able to execute procedures and functions in applications. Package FND_GLOBAL
However this package has been defined with the rights of the plaintiff - CIVICA must be explicitly object privilege to all objects used by the package (or packages of sub that he calls, that there are some - it is really a case to view the hierarchy of this package and ensure that each object is explicitly given to CIVICA)
What do you mean by "explicitly granted to CIVICA"? ". Do you mean granted directly to CIVICA, and not a role that CIVICA has?
Once more, the privileges granted to the roles are good enough for packages AUTHID CURRENT_USER (also known as the "rights of the applicant"). The only time where you have to say "GRANT."... CIVICA"is when granting a role to the CIVICA; all other privileges may be granted to this role, or some other roles that are granted to the role that CIVICA has.
Mnight want to create a role that has all the necessary privileges to use the package and grant this role to users like CIVICA.... So, it seems as if I have no choice but to get my pen and paper and trace through the nested packages and objects called by FND_GLOBAL and to ensure that they are explicitly granted to CIVICA! I hate days like these!
CIVIA want to have all the privileges that has APPS? You can query dba_tab_privs (and oither views in the data dictionary) to find (and write statements of "GRANT... ("for) all these privileges.
You can also create another packet (let's call it FND_GLOBAL_I) in applications with rights of the author. Specification of package would be identical to the specification of FND_GLOBAL package, except that it says FMD_GLOBAL_I instead of FND_GLOBAL. The FND_GLOBAL_I package body are very similar to the spec. The body of each procedure or function would simply be a call to the corresponding functuion in FND_GLOBAL. Since FND_GLOBAL has hundreds of procedures, it will be a lot of work, but perhaps less work than to find exactly what privileges are needed.
-
Trigger that executes the stored procedure does not
I have a trigger on a table which triggers the update of the column 'APPLICATION_OFFER_SENT '! The trigger looks like this:
Simply, he runs a procedure and takes the "PK_APPLICATION_NO" as a single parameter.CREATE OR REPLACE TRIGGER SCHEMA.COPY_APPLICATIONS AFTER UPDATE OF APPLICATION_OFFER_SENT ON PPLE_T_APPLICATION REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN UPDATE_OR_INSERT_APPL(:old.PK_APPLICATION_NO); END;
When I run the SP itdefl: exec UPDATE_OR_INSERT_APPL (1042); It works very well.
But when its done through the relaxation it doesn't?
The Proc looks like this:
Published by: oraCraft on Oct / 09/2010 09:11CREATE OR REPLACE PROCEDURE SCHEMA.UPDATE_OR_INSERT_APPL (IN_APPL_NO NUMBER) IS CURSOR c1 IS SELECT title, fullname, universityid, appl_no, appl_no_hash, OFFER_EXPIRATION_DATE, APPLICATION_CANCEL_DATE, room_hall FROM SCHEMA.ACCOM_APPLICATION_VIEW WHERE appl_no = IN_APPL_NO; rowcnt NUMBER; BEGIN FOR rec IN c1 LOOP SELECT COUNT(*) INTO rowcnt FROM SCHEMA2.ACCOMM_OFFER_ACCEPTANCE a WHERE a.appl_no = IN_APPL_NO; IF rowcnt = 0 THEN INSERT INTO SCHEMA2.ACCOMM_OFFER_ACCEPTANCE (title, fullname, universityid, appl_no, appl_no_hash, offer_expiration_date, application_cancel_date, room_hall) VALUES (rec.title, rec.fullname, rec.universityid, rec.appl_no, rec.appl_no_hash, rec.offer_expiration_date, rec.application_cancel_date, rec.room_hall); COMMIT; ELSIF rowcnt !=0 THEN UPDATE SCHEMA2.ACCOMM_OFFER_ACCEPTANCE t SET (t.offer_expiration_date, t.application_cancel_date, t.room_hall) = (select OFFER_EXPIRATION_DATE, APPLICATION_CANCEL_DATE, ROOM_HALL from SCHEMA.ACCOM_APPLICATION_VIEW B where B.appl_no = IN_APPL_NO); END IF; END LOOP; END;
Published by: oraCraft on Oct / 09/2010 09:11>
Validation is in my stored procedure, is not my trigger. I'm sure it's very good
>It is not very well according to the Application Developer Fundametals guide...
>
DDL statements are not allowed in the body of a trigger. Furthermore, no control of transaction
statements are allowed in a trigger. SAVEPOINT, COMMIT and ROLLBACK cannot be
used. For system triggers, TABLE {CREATE/ALTER/DROP} instructions and
EDIT... COMPILE are allowed.
Note: A procedure is called by a trigger cannot perform the previous transaction control statements,
because the procedure runs in the context of the body of the trigger.
>There is an exception to this rule if you use the pragma AUTONOMOUS TRANSACTION, but I do not see that in your trigger.
Kind regards
Bob -
roles authenticated using stored procedures does not...
Mr President.
See the steps I went through that
create user100 user identified by 123;
create user101 user identified by 123;
Grant create session, create role, create the procedure to user100;
Grant connect to user101;
change the quota of the user user100 10 M on users;
grant create table to user100 with admin option;
Conn user100/123
create or replace procedure settingrole as
Start
dbms_Session.set_role ('dummy');
end;
/
create the dummy role identified using user100.settingrole;
grant create table to dummy;
Grant execute on settingrole to user101;
Conn user101/123
execute user100.settingrole;
now the error I get is ora-06565 cannot run set role in stored procedures
ORA-065512 to the sys.dbms_session line
can u help me please how to do this jobYou must create the procedure with the right of the applicant (article AUTHID CURRENT_USER). See more on the secure application role http://download.oracle.com/docs/cd/B28359_01/server.111/b28337/tdpsg_privileges.htm#CIHHGDAE tutorial
-
Hello
Problem*: execution of DBMS_WM.setTriggerEvents results in a < trigger_name > error does not exist, even if the trigger actually exists.
Environment*: Oracle 10 g R2 on Windows 2003. Internal programs of PL/SQL stored in packages in a schema; data tables compatible version in many other patterns. The DIRECT workspace is frozen, allowing that the operations of WM. Applications and users change data in the context of child workspaces.
_ The goal: on a workspace of the merger in LIVE, fire a level trigger line AULIEUDE updates the data in another schema.table. For example, changes to data in Schema1 activate the trigger stored in Schema2, which in turn changes in schema3.
It is believed that an AULIEUDE trigger is necessary due to complications OWM. Specifically, a trigger on the underlying table for the LT would fire outside the context of a review, which is problematic because triggered changes are made, even if the user ignores finally his work space. In addition, the operations are not easily discernible on the table LT for INSERTS, UPDATES and DELETES the extra lines result (i.e., INSERTS).
Detail: *
Organization: SchemaSW contains a trigger that calls a public procedure in a specific application package "Package1" The specific application package calls various public functions in another package in the same pattern. This last package encapsulates OWM sequences appeal and management to ensure that all internal applications regularly perform operations of OWM errors. The trigger is associated with SchemaV1.View. A MERGE_WORKSPACE_W/WO_REMOVE event, the trigger modifies data stored in SchemaV2.View.
Permissions: the user SchemaSW has WM_ADMIN_ROLE, CONNECT, RESOURCE and DBA roles and privileges SELECT ANY TABLE system, update ANY TABLE and SYSDBA. The SchemaV1 user has EXECUTE on SchemaSW.
Declaration of delinquency: EXECUTE DBMS_WM.setTriggerEvents ("< TRIG_NAME > ', dbms_wm.") WORKSPACE_MERGE_WO_REMOVE | «, » || dbms_wm. WORKSPACE_MERGE_W_REMOVE);
Error:
ERROR on line 1:
ORA-20171: error WM: trigger ' < SchemaV1 >. < TRIG_NAME > ' does not exist
ORA-06512: at "SYS." WM_ERROR', line 342
ORA-06512: at "SYS." WM_ERROR', line 359
ORA-06512: at "SYS.LT", line 13264
ORA-06512: at line 1
Documents*: Guide to the application developer - Workspace Manager (B14253-01, 10 g Release 2).
[pg 4-133] «By default, user-defined triggers are executed for DML events both workspace, unless the default behavior is changed using the parameter system Workspace Manager FIRE_TRIGGERS_FOR_NONDML_EVENTS (described in Section 1.5).» You can use the SetTriggerEvents procedure to override the current setting of the FIRE_TRIGGERS_ FOR_NONDML_EVENTS of specific triggers; However, if you later change the value of the parameter system FIRE_TRIGGERS_FOR_NONDML_EVENTS, this new value replaces all specified parameter previously using the SetTriggerEvents procedure. If this procedure is successful, it validates the transaction open database calling fs. An exception is thrown if one or more of the following apply: hominess ' user is not the owner of the trigger, or does not have the role WM_ADMIN_ROLE. There is no such thing as ¡triggerName. Instead of more triggerEvents values are not valid. »
[pg 1-23] "1.10 triggers on Version-Enabled tables compatible Version tables may have defined triggers; However, the following considerations and limitations apply: ¦ only by line triggers are supported. Statement triggers is not supported. ¦ Set single-line triggers are supported. Avant-mise day and update after the cessation of the triggers for specific columns are not supported. »
Troubleshooting*: documentation requires the user trigger (otherwise the trigger owner) to have the WM_ADMIN_ROLE, which is satisfied in this case. I checked the existence of triggering via:
SELECT the owner, table_owner, table_name, triggering_event, STATUS
OF dba_triggers
WHERE UPPER (TRIGGER_NAME) = UPPER ("< TRIG_NAME >" ");
SchemaSW SchemaV1
< VIEW >
INSERT
PEOPLE WITH DISABILITIES
(Note that I have disabled the trigger for does not stop others from exercise data while I try to fix this).
Any directive of the community is very much appreciated.
Thanking you,
NoelSo you're creating instead of trigger directly on the view from above (the original name of the table)? Let me know if this isn't the case.
OWM does not support INSTEAD of triggers. Instead of triggers need to be defined on a view and the only objects that can be activated version are tables. However, I see nothing in your description that says to an INSTEAD of triggers. What you try to do so should be able to finish the level triggers table row dml insert/update/delete. You would simple create triggers on the table before EnableVersioning or add them during a session of beginDDL/commitDDL, and they would be then implemented as PL/SQL procedures inside the inside instead of triggers that we create. They are not defined on the table _LT.
After you create the trigger, you would be able to use dbms_wm.setTriggerEvents to specify the events you want relax to fire to.
Kind regards
Ben -
I get currently getting an error when I try and insert into a table of a different pattern of my stored procedure:
Error (20.22): PL/SQL: ORA-00942: table or view does not exist
I am explicitly calling the table with the name of the schema that is infront
INSERT INTO SAPSR3. ZTREC_NAME_TYPE
(
MASTER_ID,
NAME_TYPE,
FAMILY_NAME,
FIRST NAME,
MIDDLE_NAME,
TITLE
)
VALUES
(
In_MasterID,
In_NameType,
In_FamilyName,
In_FirstName,
In_MiddleName,
In_Title
);
Only, I get this error when I try to compile my stored procedure. If I try this insert not within a stored procedure (for example, an empty script) it works perfectly.
Can someone tell me what Im doing wrong?
Thank you.Hello
Looks like you (the owner of the procedure) have privileges on that table only through a role.
Roles do not count in the stored procedures created with AUTHID OWNER (which is the default).Or the other
(1) user SAPSR3 have the privileges needed directly at you (or public), or
(2) change the procedure so that it runs with the privileges of the caller, adding AUTHID CURRENT_USER after the list of arguments, but before the keyword IS (AS os) like this:CREATE OR REPLACE PROCEDURE foo ( x IN NUMBER ) AUTHID CURRENT_USER IS ...
Maybe you are looking for
-
Firefox slow to open links from Thunderbird and elsewhere
With Firefox versions later than 34 (or maybe 35 - not sure) try to open a link to the page of a Thunderbird e-mail and occasionally other sources, results in Firefox 36 and 37 suspended up to one minute before opening the page and a new tab, so I'm
-
Re: Problem with optical drive with the Satellite C50D-A002
I have a problem with my CD drive on my laptop. Whenever I insert a disc and it runs well, but it tends to really vibrate wrong, I checked the driver updates but none are currently and I checked for any damage but I see nothing.
-
I got on my ink cartridge consistent error messages, specifically my Tri-Color. I cleaned the cartridge, and then put in the status bar. It works for a while, and then I get the error again. My printer is about a year, and I do not print constantly.
-
Margins on PDFs using HP Photosmart 7520
I use Windows 7 Professional it and print a PDF of the latest version of Adobe Reader or PDF of power. I KNOW that the file has no margins. I put the window print to 'Fit' and the preview image in the print displays the document window fill the page
-
original title: Windows Mail stop working I have Windows Vista Home Premium and Windows Mail has stopped working. When I try to open it, I get a message saying that Windows Mail cannot be opened because another instance of it is already running. (th