SQL & PL/SQL :: Capture NO_DATA_FOUND From Ref Cursor?

Feb 11, 2013

I am returning a refcursor as OUT parameter in my stored procedure. I would like to capture a no data found for the refcursor. Is there a way I can raise the exception without compromising the performance?

I have tried the below options that are not working.

1. If I run a SELECT query to check for records and then OPEN the refcursor for that SELECT, then it takes a performance hit as I am reading the table twice.

2. I can FETCH a refcursor into a table type and check the count in the table to raise exception.But once I fetch from a refcuror, the data is gone. So, this option does not work either.

View 2 Replies


ADVERTISEMENT

SQL & PL/SQL :: SELECT Will Raise NO_DATA_FOUND Exception

Feb 10, 2011

I was going through the link: URL....Here within the box under the title 'Exception Handling -- Quick Facts and Tips', it states, Once you have handled an exception, normal program execution continues. You are no longer in an "exception" situation.

I wanted to verify this and used the below:The DDL and DMLs:

CREATE TABLE emp(empno NUMBER(4), ename VARCHAR2(10));
INSERT INTO emp VALUES(7369,'SMITH');

The program:

DECLARE
x VARCHAR2(10);
BEGIN
SELECT ename INTO x FROM emp WHERE empno=4567;
SELECT ename INTO x FROM emp WHERE empno=7369;
DBMS_OUTPUT.PUT_LINE(x);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('ERROR OCCURED');
END;

The first SELECT will raise NO_DATA_FOUND exception. Even though I have handled it, the second SELECT is not executing.But the link says, that normal program execution will continue. So, Iam expecting the second SELECT statement to work.

View 4 Replies View Related

PL/SQL :: - NO_DATA_FOUND But Triggers Doesn't Continue Job

Sep 9, 2012

i've a problem regarding my code at line: 76. URL....

If i put a RAISE_APPLICATION_ERROR just before:
SELECT ID_GIOCATORE INTO CONTR_GIOCATORE2
FROM COMP_CONTR_GIOCATORE_PARTITA GC JOIN CONTRATTO C ON GC.ID_CONTRATTO = C.ID_CONTRATTO
WHERE GC.ID_PARTITA = :NEW.ID_PARTITA AND (C.ID_CASELLA = 28 OR C.ID_CASELLA = 12) AND C.ID_CASELLA <> :NEW.ID_CASELLA AND
[code]....

But if i put the RAISE_APPLICATION_ERROR just after this statement and before IF(CONTR_GIOCATORE2 IS NOT NULL AND CONTR_GIOCATORE2 = CONTR_GIOCATORE) THEN, nothing happens after the insert(that goes well) and the trigger doesn't do his job(insert,update etc). if i do that select, i got the no data found, so i put the exception to set the variable CONTR_GIOCATORE2 to NULL.

View 1 Replies View Related

PL/SQL :: How To Insert Data While NO_DATA_FOUND Exception Raise

Aug 19, 2013

create or replace procedure set_update(p_name in varchar2,p_email in varchar2)is  l_data user_details%rowtype;                          beginselect * into l_data             from user_details ud             where ud.name = p_name             and ud.email = p_email;  if l_data.name = p_name and l_data.email = p_email then    update user_details    set last_login_date = sysdate , date_updated = sysdate     where name = p_name and email=p_email;  end if; exception when no_data_found then    insert into user_details(user_id,name,last_login_date,date_updated,date_created,email)    values (l_data.user_id,p_name,l_data.last_login_date,l_data.date_updated,sysdate,p_email);end set_update; 

This is my procedure will pass two parameters if it is available in table it will update other wise insert that data in table. My problem is while data is not available that data is inserted into table but that not inserted into table. 

View 7 Replies View Related

PL/SQL :: What Kind Of Exception Can Raise A Select Statement Excluding NO_DATA_FOUND

Oct 23, 2013

what kind of exception can raise a select statement excluding NO_DATA_FOUND; For example i try to run the following: select * from departments where departments_id=11; In a situation like that what kind of error oracle can raise?I'm asking this because i have some procedure that just do a select statment and i want to know if there is a valid reason to put the exception others at the end of the procedure.

View 25 Replies View Related

Capture On 10g Schema Wise

Jul 1, 2013

OS : Windows 2003 DB : 10.2.0.4 I am doing capture and replay first time.I want to take 2 captures at a time. 1st capture for 2 schemas and 2nd capture for other schemas.Is it possible?I have searched on internet but didn't get any clue about it..

View 4 Replies View Related

Capture Information From AWR Snapshots

Oct 20, 2010

The sqlcache is getting over-written.I would like to capture information from AWR snapshots and feed those (as a workload) into the DBMS_ADVISOR.I can't see where it's possible (other than manually creating my workload from AWR information)

View 3 Replies View Related

Capture IP Address In DB Trigger?

Mar 22, 2013

I am running 11.2. Within a DB trigger, I need to capture the IP address of the client making the change. I see there is a SYS_CONTEXT('USERENV','IP_ADDRESS') built in. Is this the correct way to capture the IP of the client making the change?

View 2 Replies View Related

SPM Auto Load Capture And Use?

Sep 12, 2012

I was reading about Oracle SPM feature, but i have questions in mind for automatic feature..

* if we have set both capture and use parameter true. Oracle will automatically capture Plans, but will it automatically evolve new plans to accepted or it will wait for evolve it manually before using new plan.

* If it Automatically evolve, when and how will it?

* If it Automatically, will change old plan's flag accepted to No? or add one more accepted plan

View 9 Replies View Related

PL/SQL :: Need To Only Capture Changes And Their Effective Dates

Apr 9, 2013

I need the effective dates (start and end) of marital status changes in sequential order, without duplicate rows over the same time frame. (Per_all_people_f table only). For example below, I only need the items that are in bold. I am very new to pl/sql and cannot figure out how to do this.

When I do this in sql with Min date and max date; the 1st and 2nd blocks are correct, the 3rd block has wrong end date and 4th block is entirely missing as the 'M' is already counted for in block 1 even though it occurred after other status changes.

Example of the rows and what I need in BOLD below:
So no gaps in time and it captures the effective date range for that particular marital status; I need to get:
1st block 'S' 10/23/2000 - 4/12/2004
2nd block 'M' 4/13/2004 - 10/1/2006
3rd block 'D' 10/2/2006 - 5/23/2007
4th block 'M' 5/24/2007 - 12/31/4712

Actual data in table I do get on a query with no restrictions:

490 *10/23/2000* *4/12/2004* 0 US S F
490 *4/13/2004* *10/1/2006* 0 US M F
490 *10/2/2006* 2/12/2007 0 US D F
490 2/13/2007 *5/23/2007* 0 US D F
490 *5/24/2007* 10/7/2010 0 US M F
490 10/8/2010 11/15/2012 0 US M F
490 11/16/2012 *12/31/4712* 0 US M F

View 4 Replies View Related

How To Capture SQL Statement For Analysis

Aug 27, 2012

we have 1 server oracle and many clients. when client sends sql statement to server.How to Capture sql statement to analysis before it sent to server and execution.

View 18 Replies View Related

Precompilers, OCI & OCCI :: Pro*C - Cursor Leak With Cursor Array

Sep 7, 2007

I'm dealing with an ORA-1000 error in a Pro*C application where all the cursors are correctly closed (or so it seems to me).

Here is the code for a simple program which reproduces the problem:

Each cursor is opened in a PL/SQL package:

CREATE OR REPLACE PACKAGE emp_demo_pkg AS
TYPE emp_cur_type IS REF CURSOR;
PROCEDURE open_cur(curs IN OUT emp_cur_type, dept_num IN NUMBER);
END emp_demo_pkg;

[Code]....

While testing the initialization parameter open_cursors is set to 50.

It's my understanding that Oracle doesn't close the cursors until it needs the space for another cursor, which in my test case seems to happen when I enter a value of 50 or bigger for "number of loops". To see how oracle is reusing the cursors, while the test program is running I run SQL*Plus and query v$sesstat for the session that's running the test with the following sentence:

select name, value
from v$sesstat s, v$statname n
where s.statistic# = n.statistic#
and sid = 7
and name like '%cursor%';

Even before I enter a value for number of loops I can see that the session opened 4 cursors and closed 2 of them:

NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 4
opened cursors current 2

Entering a value of 5 for number of loops yields

NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 11 <----- 7+
opened cursors current 8 <----- 6+

With a value of 30

NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 36 <----- 25+ (apparently, Oracle reused at least 5 cursors)
opened cursors current 33 <----- 25+

With a value of 47

NAME VALUE
---------------------------------------------------------------- ----------
opened cursors cumulative 53 <----- 17+
opened cursors current 50 <----- 17+

Now I reached the upper limit set by the initialization parameter open_cursors.

Entering a value of 48, I get the ORA-1000 error.

ORA-01000: maximum open cursors exceeded
ORA-06512: at "SCOTT.EMP_DEMO

Since I open and close the cursor in the same loop iteration, I expect to find in every iterarion 1 explicit cursor and a number of implicit cursors (the PL/SQL call along with the so-called recursive cursors), but I don't expect the sum of all of them to be greater than 50. If my understanding is correct Oracle should be reusing the 50 cursors previously marked as "closeable", not raising the ORA-1000 error.

View 1 Replies View Related

CP01 - Restarting Capture Due To ORA-26840

Nov 19, 2011

I have this error when I use this to fix it:

re-instantiate the schema.

1. stop the downstream capture and apply processes.

2. Instantiate source schema so we know from what point to start replication

SQL> set serverout on
SQL>
DECLARE

[code]....

View 5 Replies View Related

How To Capture Storage Space Error

Sep 3, 2009

I am using the below command,

lv_ret := WEBUTIL_FILE_TRANSFER.AS_To_Client_with_progress(lv_clnt_file, lv_srvr_file,
'Download from Application Server in progress', 'Please wait');

to download a file to my H: drive.Here lv_ret is a boolean variable.The file is not downloaded to my H drive when there is no enough space.How to capture that error?

View 1 Replies View Related

Forms :: Capture Image Through Webcam

Sep 17, 2007

How can i capture an image using webcam connected to my PC and show that in the image item in my d2k form 6.0.I want to get the function in a when button pressed trigger.

View 16 Replies View Related

Forms :: Capture Key Press In Oracle 6i

Jun 14, 2010

How to capture key press in oracle forms 6i.My intention is to create a form with 2 blocks. First block have one text item which user will input data and second block displays data based on the value typing in the text item(Same like LOV).

View 12 Replies View Related

SQL & PL/SQL :: Capture Queries Run By 3rd Party Tool?

Dec 7, 2011

I have this 3rd party tool, which are running SQL queries. I need to see what queries the tool is running and capture them. I enabled tracing but that's not working, as the tool doesn't establish connection, it connects when it has to run the query and then gets disconnected.

View 2 Replies View Related

Forms :: How To Capture Return Value From LOV At Run Time

May 30, 2012

I have a field say field A which has to be enabled/disabled based on the return value from an LOV.

ex: if lov returns A then field A should be enabled anything other than A, then field A should be disabled.

Do we have any function to get the return value from LOV?

View 4 Replies View Related

SQL & PL/SQL :: Capture Log For Failed Login Attempts?

Nov 15, 2011

I am using the below code to capture all important logs when user failed to login on database , but i cant capture the username which are failing to connect on database.

CREATE OR REPLACE
TRIGGER failed_logon_notifications
AFTER SERVERERROR ON DATABASE

[Code].....

View 3 Replies View Related

Forms :: Trigger To Capture User Details

Jan 16, 2012

I have a table in that i have some columns along with that four columns to capture the user details. but these details must be captured Programmatically.like whenever a user insert or update or delete his credentials must be captured in these columns. but i am not figuring out in which trigger i have to write and how.

View 19 Replies View Related

SQL & PL/SQL :: Capture And Reference Parameter Value Of Procedure In Another Package

Jun 8, 2011

I need to know how to capture the Parameter Value of a Procedure in a Variable and reference that variable in another Procedure or Package.

View 12 Replies View Related

Application Express :: How To Capture User Name Information

Mar 5, 2013

I have created a table A say columns a,b,c,d,E. I have created a application to insert and update and delete rows in to this table.I want to capture when some user inserts , update, delete the rows.

How do I set this variable..

View 2 Replies View Related

PL/SQL :: Materialized View Log Used As Change Data Capture

Jan 31, 2013

I have big source tables to load in a data warehouse. We are in a full Oracle environment. So I need to extract only delta since the last extract.

I need to capture even deleted rows from the source table.

I have tested the following solution:

- declare a materialized view log on the source table
- load the content on this view log in my ODS
- empty this view log
- load my DWH with the captured delta

It is very simple and seems to work perfectly. I am just confused by the fact that nobody seems to have implemented such a solution.

View 11 Replies View Related

How To Capture TXs From Archive Logs To Replay On 10g Database

Feb 12, 2013

I am looking for a way to capture a TXs from one database and create a script or use it with tool, so we can capture TXs close to production while testing changes being implemented in database.

Env:

OS: Redhat Linux 5.0
DB: 10.2.0.4

Actually Requirement: We have active-active Golden Gate setup done for one of our DB and once a quarter we make changes in the database using DDL (CREATE / ALTER - TABLES, FUNCTIONS, TRIGGERS, etc). We are 24/7 environment and hence no downtime is affordable. What I like to know is a way to capture all TXs from one of the DB and create a script so we can run them while we are testing new changes in the database. Something like DBMS_WORKLOAD_CAPTURE Package (Available only after 11gR1) or some tools available in the market.

I also tried looking into Load Runner but felt it works with App tier than DB, I may be wrong there.

View 7 Replies View Related

SQL & PL/SQL :: Cursor With Bind Variable And Cursor Record

Feb 25, 2011

Is it possible to:

-define a cursor with bind variables
-get a cursor record from these cursor
-and pass the bind variable in the OPEN clause

Did'nt succeed as shown in the example.

SET SERVEROUTPUT ON SIZE 900000;
DECLARE
--works fine
CURSOR c1 IS SELECT * FROM USER_TABLES WHERE rownum<3;
--doesn't work
--CURSOR c1 IS SELECT * FROM USER_TABLES WHERE rownum<:1;
crec c1%rowtype;
BEGIN
--works fine
OPEN c1;
--isn't possible ?
--OPEN c1 USING 3;

[Code]....

View 3 Replies View Related

Oracle Stream Error At Create Capture Process?

Jul 14, 2010

I'm configuring Oracle Streams 11g. When I'm trying create capture process I receive this error:

ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_STREAMS_ADM", line 372
ORA-06512: at "SYS.DBMS_STREAMS_ADM", line 312

User stream administrator "stradmin" has dba role in both source and target databases.

View 2 Replies View Related

Forms :: How To Capture Date And Time In Separate Fields

May 8, 2012

I want to capture date and time in separate fields from user and save it in single column in table

example: user enters date and time
Date : 08/05/20212
Time : 18:50:00

At the time of save I want to save [08/05/2012 18:50:00].

View 1 Replies View Related

Client Tools :: How To Capture Error Code In Sqlplus

Sep 10, 2013

I have a .sql file that is used as a wrapper file that when executes within sqlplus (9.2.0.1.0), executes a bunch of .sql files within it. Example below:

WRAPPER.SQL
START D:ScriptsA.sql "'04-01-2012 00:00:00'"
START D:ScriptsB.sql "'04-01-2012 00:00:00'"
START D:ScriptsC.sql "'04-01-2012 00:00:00'"
START D:ScriptsD.sql "'04-01-2012 00:00:00'"
START D:ScriptsE.sql "'04-01-2012 00:00:00'"
EXIT;

Each of the .sql file (A,B,C,D,E) Spools individual output of sql statment within them. Each of the indv .sql file queries different tables with different filters(where) clause.

I would like to capture any error (OS,SQL,DB) into indv error file (A_ERROR.log). The reason being is because later in the process we need to validate if there were any errors before processing and loading the data into our SQL database

View 15 Replies View Related

Change Data Capture For Java Processes And Not Databases?

Mar 11, 2013

oracle 11.2.0.3 I have insert only tables that receive srecords from multiple processes at a rate of about 200/second. Each transaction can have up to 100 records. I have another set of processes that queries this table for the latest data. These processes run anywhere from once a minute to once an hour. Processes do not get all of the data. They get data based on a type field.

Both of these are from java middle tiers. The process that queries data (The subscriber) does so at the request of many remote servers (there will be vast numbers). I am not allowed to expose these downstream databases to the internet (they are not oracle DBs anyway) so I cannot use streams or golden gate

So basicallyInsert Process: multiple sessions that combined insert records up to 200/second. There will be between 1-100 records per commit.

Query Process: Downtream process makes a request to my middle tier. This middle tier runs a query to get the latest data and passes it back. This design is set and I cannot change it.

1. right now we capture the insert time of the record. However, at this rate of inserts some processes will commit faster than others. So I cant use a 'greater than my insert time' query.
2. streams/golden gate won't work. can't register these DBs.
3. don't want to serialize my inserts because since I am not sure I can keep up with the insert rate. I don't even know what the specs will be for the production hardware. I have to actually deliver this before its decided. So I am being conservative.
4. I really want to avoid updates on this table if possible. In part due to my limited ability to test.
5. due to the number of downstream processes it is possible that it will request data and for some reason fail to insert the data locally. So the downstream application will keep track of the latest data it received. This means that a subscriber may need to request the same data again.

Is there a way to set up change data capture with multiple subscribers to handle this? if my subscribers are just queries? All the queries come from the same servers(there will be several, but all the same thing). If so, when I performance test this are there any wait issues I should keep an eye on?

View 1 Replies View Related

SQL & PL/SQL :: Materialized View - How To Capture / Convert MV Log Deltas To Real Rows

Jun 27, 2013

We have a requirement where we need to publish only the delta/changes made to an existing materialized view. This MV is fast refreshed over a db link. Since, MV will have all the data, we won't

1] Created MV Log

CREATE MATERIALIZED VIEW LOG ON SHRTS_FLNG_PRCSD
WITH PRIMARY KEY, SEQUENCE
INCLUDING NEW VALUES;

2] Create MV

CREATE MATERIALIZED VIEW MV_SHRTS_FLNG_PRCSD (ITRTN_NB,UNQ_ID,XCHNG_ORG_ID,FLNG_ST,MAX_PRCSD_ITRTN_NB,SBMTD_SCRTS_AM,SBMTD_PSTN_AM)
BUILD IMMEDIATE
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS

[code]....

3) I can see deltas on MV logs.

UNQ_IDITRTN_NBSEQUENCE$$SNAPTIME$$DMLTYPE$$OLD_NEW$$CHANGE_VECTOR$$XID$$
{FDE35AAC-E749-4507-972F-F26F5982E046}121/1/4000UU28002.81485714140869E15
{FDE35AAC-E749-4507-972F-F26F5982E046}131/1/4000UN28002.81485714140869E15
{FDE35AAC-E749-4507-972F-F26F5982E046}181/1/4000DO00002.81491297598354E15

4) I have created a temp table to capture the diff between MV and newly inserted Deltas. I have added SEQ_NB column using Oracle sequence to capture the diff

CREATE TABLE MKT_CMPLC.TMP_SHRTS_FLNG_PRCSD
(
ITRTN_NB NUMBER(2) NOT NULL,
UNQ_ID CHAR(38 BYTE) NOT NULL,
XCHNG_ORG_ID NUMBER(8) NOT NULL,
FLNG_ST VARCHAR2(9 BYTE),

[code]....

5) I have refreshed the MV

exec dbms_mview.refresh('MV_SHRTS_FLNG_PRCSD');

6) In order to capture the new inserts, I am using following DML

INSERT INTO tmp_SHRTS_FLNG_PRCSD SELECT ITRTN_NB,
UNQ_ID,
XCHNG_ORG_ID,
FLNG_ST,
MAX_PRCSD_ITRTN_NB,
SBMTD_SCRTS_AM,

[code]....

We need only delta records. Is there any way to extract actual rows from MV logs.

View 11 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved