SQL & PL/SQL :: How To Find Errors Arising In Subprogram
Jul 25, 2013
I have a procedure inside a package which consists of more than 1000 lines, and also many subprograms used inside that particular package, while call that package i receive an error, well i like to find out in which particular line this error arises, how to overcome this problem is what ways?
where i can find an alert log errors so whenever they occur in my RAC so i can comprehend them very well. I am trying to know that what can be the errors when u have RAC with ASM and SAN .
I bought Selftestsoftware for 1z0-147 for 9i and 10g. Selftestsoftware is endorsed by Oracle, should be high quality.
But its below sample question and answer seem to be wrong: It says that privilege for subprogram can be granted via role. But from Urman 9i book: the grant the execute privilege must be done explicitly and not through a role.
Did Selftestsoftware made a mistake? Or the question did not mention or assume that the subprogram is based on invoker rights not definer right?
Quote: Question: All users in the HR_EMP role have UPDATE privileges on the EMPLOYEE table. You create the UPDATE_EMPLOYEE procedure. HR_EMP users should only be able to update the EMPLOYEE table using this procedure. Which two statements should you execute? (Choose two.)
GRANT UPDATE ON employee TO hr_emp; GRANT SELECT ON employee to hr_emp; REVOKE UPDATE ON employee FROM hr_emp; REVOKE UPDATE ON employee FROM public; GRANT EXECUTE ON update_employee TO hr_emp;
Explanation: The two statements you should execute are: REVOKE UPDATE ON employee FROM hr_emp; GRANT EXECUTE ON update_employee TO hr_emp;
Unless you are the owner of the PL/SQL construct, you must be granted the EXECUTE object privilege to run it or have the EXECUTE ANY PROCEDURE system privilege. By default, a PL/SQL procedure executes under the security domain of its owner. This means that a user can invoke the procedure without privileges on the procedures underlying objects. To allow HR_EMP users to execute the procedure, you must issue the GRANT EXECUTE ON update_employee TO hr_emp; statement. To prevent HR_EMP users from updating the EMPLOYEE table unless they are using the UPDATE_EMPLOYEE procedure, you must issue the REVOKE UPDATE ON employee FROM hr_emp;
All of the other options are incorrect because they will not meet the specified requirements.
I have a question about select statements, as I am new to them and don't know how to work all the commands yet.
I'm making a select statement that is about half right... it is shown below:
select t.warehouse_id, t.quantity_on_hand, c.product_name from pahtest3.inventories t join pahtest3.product_information c using (product_id) WHERE warehouse_id in (7);
I need to take this select statement and make it so it shows all the products that don't have any quantities in the warehouse in addition to the ones that are already being shown in that select statement.
I am getting errors while executing the following block.
create TYPE c_Rec as object(a VARCHAR2(1), b NUMBER); DECLARE -- TYPE c_Rec as object(a VARCHAR2(1), b NUMBER); TYPE c_collection IS TABLE OF c_Rec; l_coll c_collection := c_collection(); BEGIN [code]........
error
06530. 00000 - "Reference to uninitialized composite"
I am trying to track down the cause of some ORA-101017 errors that are occurring intermittently. We are running PeopleSoft and every so often (couple days) we see a burst of these errors in one of our application server log files. They are not specific to a particular server and only last about 5 minutes.
There do not appear to be any messages in any of the Oracle logs and the database is not recording any failed log in attempts. No passwords are being changed and/or account changes are being made.
I can think of is that there is some sort of connection limitation to the database which causes these errors to spawn when the maximum number of connections is reached.
My question is whether or not the ORA-01017 error could be inticatve of this type of problem and/or what might be going on.
ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation
Is this error related to the permission in the OS level (windows 7 in my case)? I manually created the folder 'DATA_PUMP_DIR' in the specified directory path. Though the directory I created (DATA_PUMP_DIR) shows read-only in the general tab of the property, I am able to create files under the folder 'DATA_PUMP_DIR'.
I'm using it with MICROS and I want to edit an "RDF" then convert to an "REP" I have edited it but when I try to compile it it gives errors such as "statement ignored" or "must be declared". What these error messages mean!
If I do nothing to them and then try to save it as an REP i get a pop up error "REP-0736 there exists uncompiled program unit(s)" then i press OK and get an error reading "REP1430 cannot create REP file for file "uk_conf_lorne(name of my file)". Compilation errors found.
CREATE or REPLACE TRIGGER my_trigger BEFORE UPDATE OF PASSWORD ON mytable FOR EACH ROW DECLARE BEGIN :NEW.PASSORD := 'xyzt'; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'Error '|| sqlerrm); END trigger_create_user;
But, when i execute it, i get the following message:Warning: Trigger created with compilation errors.Even if i do nothing in trigger body:
CREATE or REPLACE TRIGGER my_trigger BEFORE UPDATE OF PASSWORD ON mytable FOR EACH ROW DECLARE BEGIN END trigger_create_user;
I'm getting back more than I want. I need to get the latest row in the PS_ACAD_STDNG_ACTN that has the academic standing code for students.
I thought if I max the effdt, strm, and effseq I would get back only one row. Especially effdt since a academic status is hardly ever updated on the same date.
PS_NTSR_GF_STUFILE will have multiple emplid's for students taking classes. PS_ACAD_STDNG_ACTN should have the last standing status for each student..(PRO = Probation, DIS = Dismissed).
UPDATE PS_NTSR_GF_STUFILE a SET a.NTSR_GF_ENRL_STAT = nvl(( SELECT b.GBSA_SUB1 FROM PS_GBSA_DTL b, PS_ACAD_STDNG_ACTN c WHERE c.ACAD_STNDNG_STAT = b.GBSA_VALUE
When creating objects, is there a way telling Oracle not to store(overwrite) procedures or other DDL in the database until the statements have no compilation errors?
create table sand_program1(prog_code varchar2(20), filing_date number(15)); Result : Both the tables are created.
Now I create a procedure below as mentioned, to check if the filing_date is greater than the prog_end_dt or not.If the filing_date is greater than prog_ end_dt, then it should go to the 1st "dbms_output.put_line" message else it should go to the 2nd "dbms_output.put_line" message.
Here's my procedure:
create or replace procedure test_sand(p_program_cd in number) is v_prog_end_dt date; v_filing_date number; begin [code]....
We have an application that uses Oracle Forms 9i AS R2 that has been running happily for many years. There are two servers that run the client side application and provide the users with access to a single database. Two weeks ago one of the two servers started expperiencing issues, then yesterday the second server started experiencing issues also. The problem appears to relate to the Java component of the service. Typically what happens is that the user runs a batch file that starts the following java command:
This should start a service that listens for connections on port 8888. Internet Explorer then fires up and establishes a connection to the listening port. Unfortunately we never get that far. We receive the following error and the Java service never starts so the IE conection fails to connect to the service on port 8888. unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC= 0x6d3f1992 Function name=(N/A) Library=(N/A)
NOTE: We are unable to locate the function name symbol for the error just occurred.
Current Java thread: at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1419) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1335)
We have upgraded our environment to Apex 4.2.1. We have an older application that makes use of Apex Lib. We cannot remove Apex Lib from the application without a lot of work.
Apex Lib is now throwing an error:
in package apexlib_error procedure addApexValidationErrors WWV_Flow.g_validation_ids_in_error does not exist.
We are running Oracle 11.2.0.3 on a Windows 2008 R2 Server with an app server on the same. Our app has a search function that has recently started timing out on us. Sometimes intermittently but often now. I've ran a trace in our dev environment, below code, in an attempt to track down the issue but I'm finding very little useful information in relation to the errors I see in the trace file below. My experience in deciphering trace code is nill so how to interpret these errors.
I have to run queries on a gov't computer. There are errors in some of the stored procedures that will NEVER go away. Fact of life, and I have to live with it (I'm just a data analyst--not the developer of the procedures)So I do this, in the hope of trapping the error
BEGIN run_stored_proc (my_cursor, my_id, param3); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('ERROR IN ID (' || my_id || '). The error was ' || SQLCODE || ' -ERROR- ' ||SQLERRM); END;Well, it can still crash. SQL> @c:mysql un_test ERROR IN ID (2692). The error was -20100 -ERROR- ORA-20100: Exception occurred in some_other_stored_procedure
ORA-01422: exact fetch returns more than requested number of rowsSo it looks like run_stored_proc calls some_other_stored_procedure which is having issues. I was hoping that by trying to capture the error in the top level procedure, it would also capture the error in a lower-level "sub-procedure". This is the way a TRY-CATCH in java works. If an error happens anywhere along the way inside the TRY-CATCH, it is caught. Sure, PL/SQL ins't java, but is there a way for me to catch a lower level error and not have this code crash?
Fortunately for me, it actually doesn't crash that often. But I have to put this code in a loop, and run it for many different my_id's. And when it does crash, it isn't significant from a data analysis standpoint. I can't do without a small percentage of the data. But I'd love to be able to just run my script and not have to watch it for unexpected crashes.
[oracle@localhost ~]$ . oraenv ORACLE_SID = [orcl] ? orcl The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle [oracle@localhost ~]$ sqlplus / as sysdba
SQL> startup nomount ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora' ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora ORA-15077: could not locate ASM instance serving a required diskgroup
I verified oracleasm is mounted and loaded, both are yes.I am unable to start my ASM instance as well.when attempting to create spfile from pfile I kept getting errors:
SQL> create spfile from pfile = 'u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora'; create spfile from pfile = 'u01/app/oracle/product/11.2.0/dbhome_1/dbs/init.ora' * ERROR at line 1: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/u01/app/oracle/product/11.2.0/dbhom e_1/dbs/init.ora'
I have scheduled a ADHOC Oracle JOB in OEM to gather statistics for the database with 100% estimation during weekend. This JOB currently fails because of a batch Job that runs at the same time and drops few old partitions. This OEM job runs for 1 hour and fails because few partitions are getting dropped at the same time.
How i can enable this statistics JOB to skip/Ignore errors and to continue to run to gather complete statistics of the entire database. I have scheduled this job in OEM. how can i enable this SKIP/IGNORE errors for this job.
Since our upgrade from 10.2.0.4 to 11.2.0.3, we are experiencing occaisional overnight job failures throwing the ORA-03135 Connection lost contact errors. It doesn't happen often, but every once in a while. Even so, it is bugging me because I can't find anything wrong!
We have a dual server setup, with one IA64 HPUX 11.31 server hosting the database, and a second IA64 HP-UX 11.31 running all of the application code. I'm seeing errors in the Alert log that is pointing me to a specific cjq0 trace file, and the contents of that trace file are pretty much as follows:
*** 2013-08-15 02:05:45.541 Waited for process J001 to initialize for 107 seconds *** 2013-08-15 02:05:45.544 Process diagnostic dump for J001, OS id=19302 ------------------------------------------------------------------------------- os thread scheduling delay history: (sampling every 1.000000 secs) 0.000000 secs at [ 02:05:45 ] NOTE: scheduling delay has not been sampled for 0.312200 secs 0.000000 secs from [ 02:05:41 - 02:05:46 ], 5 sec avg 0.000000 secs from [ 02:04:46 - 02:05:46 ], 1 min avg 0.000031 secs from [ 02:00:45 - 02:05:46 ], 5 min avg loadavg : 0.31 0.17 0.09 [code]....
There were jobs that completed successfully just prior to this failure, and subsequent jobs ran successfully as well. I'm stumped - not sure what's going on here. I have reviewed a lot of posts relative to the ORA-03135, and followed as many of the recommendations as I can, but I'm still seeing this errors periodically. Their frequency has not changed since I started applying these changes, so I know I haven't stumbled on the cause as yet.
I was asked to do export/import of some schemas from 10g(linux) to 11g(AIX) using original expor/import method. I did not consider the character set and started doing export and import. while exporting, I get questionable statistics error in export log file. In the import log, I see the error like CREATE DATABASE LINK "xxxxxxxxxxxxx" CONNECT TO "xxxx" IDENTIFIED BY...
I know that this my question is a little to much for some DB tool like TOAD, but maybe this tip is exist and I can't find it!
Does TOAD when I write something wrong in PL/SQL (trigger for example) and after compilation (run as script) when show message:
"Warning: compiled but with compilation errors" to show what is wrong in sql code? I found this option is some db tools, but I can't find this in TOAD, of course if it can do this!