ORA-01403 while using SELECT INTO
OK I have a strange problem. In my area of PL/SQL, I ran this code and it works fine.
declare
Val number (21);
s_sql varchar2 (200);
Start
Select last_number in the Vale of all_sequences where sequence_owner = upper('TSS') and sequence_name = upper('ADDRESS_SEQ');
Dbms_output.put_line ('val' |) Val);
s_sql: = ' remove the TEST1 sequence. ADDRESS_SEQ';
Dbms_output.put_line ('sql 2 ' | s_sql);
s_sql: = ' create sequence TEST1. ADDRESS_SEQ minvalue maxvalue 1 999999999999999999999 begin by ' | Val | 'increment of 1';
Dbms_output.put_line ('sql 3 ' | s_sql);
end;
However, when I write this procedure (which compiles fine BTW) I exception
SET SERVEROUTPUT ON;
create or replace procedure copy_sequence
as
Val number (21);
s_sql varchar2 (200);
Start
Select last_number in the Vale of all_sequences where sequence_owner = upper('TSS') and sequence_name = upper('ADDRESS_SEQ');
Dbms_output.put_line ('val' |) Val);
s_sql: = ' remove the TEST1 sequence. ADDRESS_SEQ';
Dbms_output.put_line ('sql 2 ' | s_sql);
s_sql: = ' create sequence TEST1. ADDRESS_SEQ minvalue maxvalue 1 999999999999999999999 begin by ' | Val | 'increment of 1';
Dbms_output.put_line ('sql 3 ' | s_sql);
end;
/
exec copy_sequence();
COPY_SEQUENCE compiled PROCEDURE
Error from the 168 in the command line:
exec copy_sequence()
Error report:
ORA-01403: no data found
ORA-06512: at "SYSTEM. COPY_SEQUENCE', line 6
ORA-06512: at line 1
01403 00000 - "no data found".
* Cause:
* Action:
That I captured:
SET SERVEROUTPUT ON;
create or replace procedure copy_sequence
as
Val number (21);
s_sql varchar2 (200);
Start
Select last_number in the Vale of all_sequences where sequence_owner = upper('TSS') and sequence_name = upper('ADDRESS_SEQ');
Dbms_output.put_line ('val' |) Val);
s_sql: = ' remove the TEST1 sequence. ADDRESS_SEQ';
Dbms_output.put_line ('sql 2 ' | s_sql);
s_sql: = ' create sequence TEST1. ADDRESS_SEQ minvalue maxvalue 1 999999999999999999999 begin by ' | Val | 'increment of 1';
Dbms_output.put_line ('sql 3 ' | s_sql);
exception when TOO_MANY_ROWS then DBMS_OUTPUT.put_line ('too many authors in this State');
When NO_DATA_FOUND then DBMS_OUTPUT.put_line ('NO_DATA_FOUND');
While other then raise_application_error ("-20011," unknown Exception ");
end;
/
exec copy_sequence();
COPY_SEQUENCE compiled PROCEDURE
anonymous block filled
NO_DATA_FOUND
No idea what is the problem?
OK, here's the answer
Procedure failed with ORA-01403, associated with immediate execution, captured
It was related to the privileges given to the owner of the procedure. I gave then SELECT sequence and it worked
Tags: Database
Similar Questions
-
SQL error: ORA-00947 while using INSERT INTO
Hello
I work with an INSERT INTO statement that returns ORA-00947.
INSERT INTO prod (pId, a, b, c and d, e, f, g, h, i)
VALUES (SEQ_PROD. NEXTVAL, 1,.
(Select to_char (v.pdate, 'YYYY')
to_char(v.pdate,'MM')
d.prod
, ROUND (sum (v.f) / 10)
COUNT (*)
Of...
Group of to_char(v.pdate,'YYYY'), to_char(v.pdate,'MM'), d.prod
)
(0,0,0);
10 fields are mapped in 10 fields. The data types match. The sub-select statement works very well.
Any ideas?
SedsoINSERT INTO prod (pId,a,b,c,d,e,f ,g,h,i) select SEQ_PROD.NEXTVAL,1 a,b,c,d,e,f ,g,h,i FROM (select to_char(v.pdate,'YYYY') b, to_char(v.pdate,'MM') b, d.prod d, ROUND(sum(v.f)/10) e, COUNT(*) f,0 g,0 h,0 i from ... group by to_char(v.pdate,'YYYY'), to_char(v.pdate,'MM'), d.prod)
Try this please
-
How to use select into command in shell script?
I need to get the total number of rows in a table using select count (*) table and must assign a shell script variable. I used the following script, it returns the number of lines, but also with oracle headers, please help me to remove the headers.
Shell script
#! / bin/sh
Count = "sqlplus $username/$password@$tnsname < < EOF"
NEWPAGE 0 VALUE
SET SPACE 0
SET LINESIZE 80
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET THE POSITION
Select count (*) in the table.
"exit";
EXPRESSIONS OF FOLKLORE"
echo "the value is"$count"
O/P:
SQL * more: Release 10.2.0.4.0 - Production on game Dec 22 05:01:33 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64 bit Production with the partitioning, options Real Application Clusters, OLAP, Data Mining and Real Application Testing
SQL > SQL > SQL > SQL > SQL > SQL > SQL > SQL 525935 SQL > >
Disconnected from the database to Oracle 10 g Enterprise Edition Release 10.2.0.5.0 - 64-bit options of Production with the partitioning, Real Application Clusters, OLAP, Data Mining and Real Application TestingUse SQL * Plus silent mode. Change:
Count = "sqlplus $username/$password@$tnsname<>
TO
Count ='sqlplus- s $username/$password@$tnsname<>
SY.
-
ORA-03113 while using the database link
From our database, we use a database link to query on a different database tables: they are the two 10.2.0.4
It is not always occur, but often. You have an idea? Thank youTake a look at this note:
ORA-03113 UNIX - what information collect [ID 17613.1] -
ORA-01403: no given available problem when you use FETCH of AUTOMATIC LINE to fill
ORA-01403: no given available problem when you use FETCH of AUTOMATIC LINE to fill out a form.
1) has created a FORM on the use of assistants of EMP. This creates an AUTOMATIC FETCH of LINE
NAME OF THE TABLE - EMP
The PRIMARY KEY containing - P2099_EMPNO point
Primary key column - EMPNO
By default, automatic extraction has a "process Error Message' of"Unable to fetch line."
(2) created an HTML region. In this region add
text P2099_FIND_EMPNO element
GET_EMP submit button
The update branch the conditional branch created when the Create button to set P2099_EMPNO with & P2099_FIND_EMPNO.
If I then turn the page, enter an employee in P2099_EMPNO number and press the GET_EMP button, the form is filled correctly. But if I get an employee who does not exist, then I get error oracle ORA-01403: no data found and no form but a message at the top of the page 'Action transformed '. I was expecting a blank form is displayed with the message 'Could not extract line.'
In conditioning automated extraction so that it checks that the line exists first, I can work around that. Change the fetch EMP automated line so that it is conditional
EXIST (SQL query returns at least one row)
Select 'x '.
from EMP
where EMPNO =: P2099_EMPNO
But this means that when the employee exists I must be get DB twice, once to the State, and then again for the extraction of the actual line.
I can't change so I don't get the Oracle error, rather than work around for a above is there something? I wonder now if the automatic extraction of line is only supposed to be used when you bind a report to a form and that I should manually write the extraction process. The reason for which I don't have at the moment, it is that I'm trying to stick with the auto generation Assistant as I can.
Any ideas?
Thanks, PetePete:
The process Assistant APEX (ARF, ARP etc) errors are generally not recoverable. The error encountered is simply displayed on a page by using the model of "Error Message. So as you said yourself, you create your own process line Fetch and have the opportunity to customize the management mistakes, or you paste a validation on the page to verify that a folder can be accessed for the views expressed.
CITY
-
How to modify a statement "select into" how to use a cursor
The following code fails with an exception too many lines. How can I modify statement Select Into the procedure to use a cursor?
CREATE OR REPLACE PROCEDURE Track_Asset( business_date IN NUMBER DEFAULT NULL, missing_table_name OUT VARCHAR2) IS ln_business_date NUMBER; incorrectdateformat EXCEPTION; BEGIN IF business_date < 0 THEN RAISE incorrectdateformat; ELSE DECLARE ln_business_date NUMBER; BEGIN SELECT MAX(business_date) INTO ln_business_date FROM sproof ; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('NO MATCH FOUND'); WHEN OTHERS THEN dbms_output.put_line('ORACLE ERROR :' || SQLERRM); END; DECLARE missedfeedfnd EXCEPTION; BEGIN SELECT 'Missing Value : ' || table_name INTO missing_table_name FROM ( SELECT UPPER(table_name) table_name FROM filespec WHERE data_table_name IN ('TABLE1','TABLE2','TABLE3') MINUS ( SELECT DISTINCT UPPER(first_table_name) FROM dpca WHERE business_date = ln_business_date AND first_table_name IN ('TABLE1','TABLE2','TABLE3') GROUP BY UPPER(first_table_name) UNION SELECT UPPER(first_table_name) FROM dpca WHERE business_dt_num = TO_NUMBER( SUBSTR('201111', 1, 6) || '01' ) AND first_table_name = 'TABLE4' GROUP BY UPPER(first_table_name) )); IF missing_table_name IS NOT NULL THEN dbms_output.put_line('Missing Value : '|| missing_table_name); RAISE missedfeedfnd; ELSE NULL; END IF; EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE (' SELECT INTO statement retrieved multiple rows'); WHEN missedfeedfnd THEN raise_application_error ( - 20003, 'Missed Feed'); END; END IF; EXCEPTION WHEN incorrectdatevalue THEN raise_application_error ( - 20001, 'Incorrect/Bad Date Entered'); END;
OK, try this - OUT param will be filled with the table names comma-separated list:
PROCEDURE Track_Asset( business_date IN NUMBER DEFAULT NULL, missing_table_name OUT VARCHAR2) ... ... cursor c_table_names is select datatablename from ( select upper(datatablename) datatablename from filespec where data_table_name in ('TABLE1','TABLE2','TABLE3' ) MINUS ( select upper(first_table_name) from dpca where business_dt_num = [-- this date is retrieved by getting the MAX(business_date) from sproof table] and fus_data_table_name in ('TABLE1','TABLE2','TABLE3' ) group by upper(first_table_name) UNION select upper(first_table_name) from dpca where business_dt_num = to_number( substr('201111',1,6) || '01' ) and first_table_name = 'TABLE4' group by upper(first_table_name) )); ... ... begin ... for rec in c_table_names loop missing_table_name := missing_table_name || rec.datatablename ||','; end loop; missing_table_name := rtim(missing_table_name , ','); ... ... end ;
HTH
Published by: user130038 on December 28, 2011 08:46
-
ORA-22992: cannot use LOB Locators selected from the remote tables...
Oracle 10.2.1.0.4
Solaris 10
We try to access a table in another database via a db_link.
The table we are trying to access has a LOB.
We get the following error: ora-22992: cannot use LOB Locators selected from the remote tables.
Is there a way to get around this? We need the data in the BLOB field.
Thank you.See on metalink:
ORA-22992 has a workaround solution in 10 gr 2
DOC - ID: 436707.1Werner
-
Procedure failed with ORA-01403, associated with immediate execution, captured
This procedure compiles without error. Its purpose is to copy the sequence of one schema to another object. After it failed with ORA-01403, I added exception code of capture (see the comments in the code).
A few notes:
1. I started the proceedings with exec copy_sequence ('ADDRESS_SEQ', 'SST', 'TEST1');
2. the first sql string is built correctly since I can see in the console output:
Select last_number in the all_sequences where sequence_owner = upper('TSS') and upper('ADDRESS_SEQ') = sequence_name
I can run this SQL command, and returns a real value;
Here is the procedure
SET SERVEROUTPUT ON;
create or replace procedure copy_sequence (seq VARCHAR2, prod_schema VARCHAR2, VARCHAR2 test_schema)
as
Val number (21);
s_sql varchar2 (200);
Start
s_sql: = ' select last_number in the all_sequences where sequence_owner = upper('''|| prod_schema ||'') ') and sequence_name = upper('''||) Seq | " ')';
-immediate' select last_number in the Vale of all_sequences where sequence_owner = upper('''|| prod_schema ||'') ') and sequence_name = upper('''||) Seq | " ')';
Dbms_output.put_line ('sql 1 ' | s_sql);
execute immediate s_sql in val; ---!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The code does not work here!
Dbms_output.put_line ('val' |) Val);
s_sql: = 'delete the sequence'. test_schema |'. ' || FF.;
Dbms_output.put_line ('sql 2 ' | s_sql);
-execution immediate s_sql;
s_sql: = 'create the sequence'. test_schema |'. ' || Seq |' minvalue maxvalue 1 999999999999999999999 begin by ' | Val | 'increment of 1';
Dbms_output.put_line ('sql 3 ' | s_sql);
-execution immediate s_sql;
-Add the following after procedure thown ORA-01403: no data found
exception when TOO_MANY_ROWS then DBMS_OUTPUT.put_line ('TOO_MANY_ROWS error');
When NO_DATA_FOUND then DBMS_OUTPUT.put_line ('error NO_DATA_FOUND');
While some other then raise_application_error (-20011, "Unknown Exception in this procedure");
end;
/
Hoek wrote:
The user (no SYSTEM, SYS, and SYSTEM are special, you should not use them unless you have TO) execution of the procedure must have the necessary privileges granted directly, bypassing a role...
??? There is nothing special about SYS or SYSTEM in what concerns them stored procedures. SYS by default is granted directly SELECT ANY SEQUENCE, so it does not work for the owner of MS by SYS. SYSTEM is therefore not:
Scott@pdborcl12 > create sequence s;
Order of creation.
Scott@pdborcl12 > create or replace
2 procedure system.p1
3 is
number of v_last_value 4;
5. start
6. Select last_number
7 in v_last_value
8 of all_sequences
9 where sequence_owner = 'SCOTT '.
10 and s = sequence_name ';
11 end;
12.Created procedure.
Scott@pdborcl12 > system.p1 exec.
BEGIN system.p1; END;*
ERROR on line 1:
ORA-01403: no data found
ORA-06512: at "SYSTEM. "P1", line 5
ORA-06512: at line 1Scott@pdborcl12 > grant select on s to the system;
Grant succeeded.
Scott@pdborcl12 > system.p1 exec.
PL/SQL procedure successfully completed.
SY.
-
ORA-00928: lack of SELECT keyword
Hello
My version of oracle 9i, I need to use a dynamic array
I use the query but I'm below receive the error-ORA-00928: lack of SELECT keyword
declare
o_error_message VARCHAR2 (500);
l_query varchar2 (2000);
HEADER_TABLE VARCHAR2 (30);
BEGIN
Select TABLE_NAME in HEADER_TABLE
from sys.all_tables
where
Upper (table_name) = Upper ('cd_alloc_header_conv');
for r_allocconv in
(SELECT t.ORDER_NO
Of
shconv. CD_ORDER_CONV_TRACK t
WHERE
t.RMS_update_status = 'Y' AND
t.ALLOC_UPDATE_STATUS =' only)
loop
l_query: ='(insert en shconv.) CD_ALLOC_HDR_ACT_CONV (ALLOC_NO,
ORDER_NO,
WH,
SKU,
STATUS,
ALLOC_DESC,
PO_TYPE,
ALLOC_METHOD,
RELEASE_DATE,
ALLOC_TYPE,
ALLOC_RIB_STATUS,
CREATED_BY,
CREATE_DATE,
UPDATED_BY,
UPDATE_DATE,
CREATE_PGM_NAME,
ROW_ID,
EXCEPTION_DETAILS,
CONV_UPDATED_STATUS) select * from shconv.' | HEADER_TABLE | "WHERE order_no =' | r_allocconv.order_no |') ' ;
run immediately l_query;
END LOOP;
EXCEPTION
WHILE OTHERS THEN
o_error_message: = "error in CD_ALLOC_CONV_MAIN" | substr (SQLERRM, 1, 250);
dbms_output.put_line (o_error_message);
END;
ORA-00928: lack of SELECT keyword
Please suggestHello
990047 wrote:
...
l_query: ='(insert en shconv.) CD_ALLOC_HDR_ACT_CONV (ALLOC_NO,...
CONV_UPDATED_STATUS) select * from shconv.' | HEADER_TABLE | "WHERE order_no =' | r_allocconv.order_no |') ' ;
I don't think you want to Try parentheses
l_query := 'insert into shconv.CD_ALLOC_HDR_ACT_CONV(ALLOC_NO, ... CONV_UPDATED_STATUS) select * from shconv.' || HEADER_TABLE ||' WHERE order_no=' ||r_allocconv.order_no;
I wonder if you have the best table design for what you need.
Apparently, you have mulitple header_tables, who are all pretty similar. Would it not be simpler if you just had a header_table, with a column that distinguishes the lines that are now in separate tables? Her you wouldn't need dynamic SQL code at all. This work would be much simpler, more efficient and more robust.I hope that answers your question.
If this isn't the case, after a complete test script that people can run to recreate the problem and test their ideas. -
Hello
First I'll apologize I can't give too much information as my client is offline and remotely. The SQL I will discuss work on his test and my solution Oracle XE. But on live, we get the error shows:
ORA-00604: an error has occurred at the SQL level 1 recursive
ORA-01400: cannot insert NULL into ("SYS". «SUMINLINE$ '.» ("' TEXT ').
I have never posted on this forum but I do not understand what makes the table SUMINLINE$ and it has relevance. Please also excuse if there is a better way to write the SQL code), in any case any guideance would be useful.
I thought it may be down to how I use rownum (he is a complete proposal) but he materializes in the previous view, I don't see how it could be)
In any case if someone is good enough to spend a little time there, watching the SQL below I would be eternally grateful.
-----------------------------------------------------
STEP 1: I have a materialized view of base:
(he uses the 'rownum' as primary key as a primary key is needed more late and from this point of view does not
a primary key, as it is a view complex)
-------------------------------------------------------
Bo_socrates.baseCSIIdentPerPerson CREATE MATERIALIZED VIEW
TABLESPACE bo_socrates
PCTUSED 0
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE)
1040K INITIALS
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
DEFAULT USER_TABLES
)
NOCACHE
NOLOGGING
NOPARALLEL
IMMEDIATE CONSTRUCTION
COMPLETE REFRESH
WITH THE PRIMARY KEY
AS
SELECT rownum iid,
csi.attendId,
csi.sceneId,
csi.caseId,
csi.identDate,
csi.identType,
csi.subIdenttype,
csi.suspectId,
CSI. Surname,
CSI. Data,
CSI. CRO,
CSI. ConfirmedIdent
OF bus_objects.v_factCSIIdentPerPerson csi
;
CREATE INDEX bo_socrates.ind_baseCSIIdentPerson_Id on bo_socrates.baseCSIIdentPerPerson (id)
TABLESPACE bo_socrates
STORAGE (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED) NOLOGGING;
-----------------------------------------------------
STEP 2: This materialized view (my fact table) uses the previous view of the materilalized
as a point to calculate the date of fact. It is for example the background 'unit' people
but I also need to know what people came first, that people came first with blue hats, etc..
So I use one with instructions to discover these facts.
* PLEASE NOTE THAT IT IS THIS VIEW WHICH TRIGGERS THE ERROR WHEN THE SCRIPT IS RUN *.
If there is a simpler way to write so please let me know
This point of view basically uses the primary key (id) generated in the above view by using rownum
-------------------------------------------------------
Bo_socrates.factCSIIdent CREATE MATERIALIZED VIEW
TABLESPACE bo_socrates
PCTUSED 0
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE)
1040K INITIALS
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
DEFAULT USER_TABLES
)
NOCACHE
NOLOGGING
NOPARALLEL
IMMEDIATE CONSTRUCTION
COMPLETE REFRESH
WITH THE PRIMARY KEY
AS
With
firstAttend like)
Select Attendid, Min (IdentDate) Identdate,
Min (ID) Id,
Min (case when identtype = 0 Then ID else null end) IPF,
Dnaid, min (case when identtype = 1 Then ID else null end),
Fwid, min (case when identtype = 2 Then ID else null end),
Min (Case When Confirmedident = 1 then end Id or Null) Idconfirm,
Fpidconfirm, min (case when identtype = 0 and Confirmedident = 1 Then ID else null end),
Dnaidconfirm, min (case when identtype = 1 and Confirmedident = 1 Then ID else null end),
Min (case when identtype = 2 and confirmedident = 1 Then ID else null end) FwidConfirm
Of Bo_Socrates.Basecsiidentperperson
Attendid GROUP),
firstInd AS)
Select Attendid, SuspectId, Identdate, Min (Id) Id, Min (IdentDate),
Min (case when identtype = 0 Then ID else null end) IPF,
Dnaid, min (case when identtype = 1 Then ID else null end),
Fwid min (case when identtype = 2 Then ID else null end)
Of bo_socrates. BaseCSIIdentPerPerson
Attendid group, Suspectid)
Select csi.id,
csi.attendId,
csi.sceneId,
csi.caseId,
csi.identDate,
CSI.identtype,
csi.subIdenttype,
csi.suspectId,
CSI. Surname,
CSI. Data,
CSI. CRO,
Csi.Confirmedident,
Case when Ind.Id is Null then 0 otherwise 1 end Firstindident.
Case when Ind.Fpid is Null then 0 otherwise 1 end Firstindidentfp.
Case when Ind.DNAid is Null then 0 otherwise 1 end FirstindidentDNA.
Case when Ind.FWid is Null then 0 otherwise 1 end FirstIndIdentFW.
Case when Att.Id is Null then 0 otherwise 1 end Firstattident.
Case when Attfp.Fpid is Null then 0 otherwise 1 end Firstattidentfp.
Case when AttDNA.DNAid is Null then 0 otherwise 1 end FirstattidentDNA.
Case when Attfw.Fwid is Null then 0 otherwise 1 end Firstattidentfw.
Case when Att.IdConfirm is Null then 0 otherwise 1 end FirstattidentConfirm.
Case when Attfpc.Fpidconfirm is Null then 0 otherwise 1 end Firstattidentfpconfirm.
Case when AttDNAc.DNAidconfirm is Null then 0 otherwise 1 end FirstattidentDNAconfirm.
Cases where AttFWc.FWidconfirm is Null then 0 otherwise 1 end FirstattidentFWconfirm
Of Bo_Socrates.Basecsiidentperperson Csi
Left outer join Firstind Ind Csi.Id = Ind.Id
Left outer join Firstind Indfp Csi.Id = Indfp.Fpid
Left outer join Firstind Inddna Csi.Id = Inddna.Dnaid
Left outer join Firstind IndFW Csi.Id = IndFW.FWid
Left outer join Firstattend Att Csi.Id = Att.Id
Left outer join Firstattend Attfp Csi.Id = Attfp.Fpid
Left outer join Firstattend Attdna Csi.Id = Attdna.Dnaid
Left outer join Firstattend Attfw Csi.Id = Attfw.Fwid
Left outer join Firstattend Attfpc Csi.Id = AttFPc.Fpidconfirm
Left outer join Firstattend Attdnac Csi.Id = AttDNAc.DNAidconfirm
Left outer join Firstattend Attfwc Csi.Id = AttFWc.Fwidconfirm
;
CREATE INDEX bo_socrates.ind_factCSIIdent_Id on bo_socrates.factCSIIdent (attendId)
TABLESPACE bo_socrates
STORAGE (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED) NOLOGGING;
CREATE INDEX bo_socrates.ind_factCSIIdent_date on bo_socrates.factCSIIdent (identDate)
TABLESPACE bo_socrates
STORAGE (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED) NOLOGGING;
CREATE INDEX bo_socrates.ind_factCSISubIdent_type on bo_socrates.factCSIIdent (subidentType)
TABLESPACE bo_socrates
STORAGE (INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED) NOLOGGING;
COMMIT;Details of the message of pl of the OS and database versions. It is probably a bug - pl see these Docs MOS
Error ORA-01400 creating MView ANSI join [ID 1495499.1]
While Alter Materialized View compilation then error ORA-01400 product [1377447.1 ID]As the State of docs, a fix is available in the next version of Oracle (12g) - I'd say you open an SR with Support
HTH
Srini -
get ORA-01403: when it should not
Hello, I apologize in advance for my spelling, name (takes 6 hours to change) and the headaches you migth get, however,.
I bring you the following code and test results:
-----------------------------------------------------------
-The procedure that throws the error.
-----------------------------------------------------------
-----------------------------------------------------------create or replace procedure P_COLEGAS(x in number) as ctipo varchar2(20); asd varchar2(20); cursor curnombre is select nombre from unidad,elemento where (elemento.id_elem=unidad.id_elem and unidad.tipo=ctipo and elemento.ciudad=asd); begin select unidad.tipo, elemento.ciudad into ctipo,asd from unidad,elemento where unidad.id_elem=x and elemento.id_elem=x; for blah in curnombre loop DBMS_OUTPUT.PUT_LINE('nombre unidad: '||blah.nombre||' '); end loop; end; -what i get when executing the procedure- Error que empieza en la línea 1 del comando: exec p_colegas(19) Informe de error: ORA-01403: no data found ORA-06512: at "BD00.P_COLEGAS", line 9 ORA-06512: at line 1 01403. 00000 - "no data found" *Cause: *Action:
-the real problem-
-----------------------------------------------------------
in the case of this procedure I had to write
(1)
(2)select unidad.tipo into ctipo from unidad where unidad.id_elem=x;
Instead the single query I wrote, we get the following:select elemento.ciudad into asd from elemento where elemento.id_elem=x;
(1) wonderful works, gets only error when there is no match for x.
(2) throws the error that I was before.
However when I do the following query in the spreadsheet and run it:
(3)
I get what I expect to get 1 row 1 column. (Yes it has data)select elemento.ciudad from elemento where elemento.id_elem=x;
Note: (3) the only difference is that I remove the clause, and x is the same number that I used when I run the procedure.
-----------------------------------------------------------
--------------------the question------------------------
-----------------------------------------------------------
Why in the procedure, the failure of the (2) query to retrieve the data, the same which data the query (3) doesn't fail to pick up?
I get ORA-01403, when I shouldn't?
is there a work around for this problem?
-----------------------------------------------------------
--------------------what i try------------------------------
-----------------------------------------------------------
Nestled the request with its own handle exception error, get the same results, a few screenshots of the error with a different treatment.
used tool: sql developer
----------
-Example of data-
----------
tested the procedure with the following sample data in a new workspace, make the same mistake.
Edited by: 975362 04:47 12/06/2012-------------------------------------------------------- -- DDL for Table ELEMENTO -------------------------------------------------------- CREATE TABLE "ELEMENTO" ( "ID_ELEM" NUMBER, "CIUDAD" VARCHAR2(20), "TIPO" CHAR(1), "X" NUMBER, "Y" NUMBER, "FECHAHORA_CREACION" TIMESTAMP (6) ) ; / -------------------------------------------------------- -- DDL for Table UNIDAD -------------------------------------------------------- CREATE TABLE "UNIDAD" ( "ID_ELEM" NUMBER, "PORCENTAJE_SALUD" NUMBER, "NOMBRE" VARCHAR2(20), "TIPO" VARCHAR2(20) ) ; / REM INSERTING into ELEMENTO SET DEFINE OFF; Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (12,'Infernalia','U',10,10,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (15,'Infernalia','U',10,7,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (19,'Infernalia','U',15,9,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (23,'Infernalia','U',16,8,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (27,'Infernalia','C',15,10,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (52,'Humania','U',26,10,to_timestamp('22-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (58,'Humania','U',24,9,to_timestamp('22-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (62,'Humania','U',27,11,to_timestamp('22-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (64,'Humania','C',25,8,to_timestamp('22-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (78,'GruntVille','U',47,32,to_timestamp('29-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (84,'GruntVille','U',42,28,to_timestamp('29-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (89,'GruntVille','U',43,29,to_timestamp('29-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (91,'GruntVille','C',44,37,to_timestamp('29-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (29,'Infernalia','C',16,7,to_timestamp('12-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); Insert into ELEMENTO (ID_ELEM,CIUDAD,TIPO,X,Y,FECHAHORA_CREACION) values (90,'GruntVille','U',49,36,to_timestamp('29-NOV-20 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')); REM INSERTING into UNIDAD SET DEFINE OFF; Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (12,100,'Grang','Soldado'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (15,100,'Krout','Médico'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (19,100,'Warf','Obrero'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (23,100,'Puaj','Obrero'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (52,100,'Marcelus','Soldado'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (58,100,'Claudius','Soldado'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (62,100,'Arturius','Obrero'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (78,100,'Klaknot','Médico'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (84,100,'Staisht','Médico'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (89,100,'Bjorkson','Soldado'); Insert into UNIDAD (ID_ELEM,PORCENTAJE_SALUD,NOMBRE,TIPO) values (90,100,'Sknot','Médico'); -------------------------------------------------------- -- Constraints for Table ELEMENTO -------------------------------------------------------- ALTER TABLE "ELEMENTO" ADD CONSTRAINT "ELEMENTO_CHK1_TIPO" CHECK (TIPO IN ('U', 'C')) ENABLE; ALTER TABLE "ELEMENTO" ADD CONSTRAINT "ELEMENTO_PK" PRIMARY KEY ("ID_ELEM") ENABLE; ALTER TABLE "ELEMENTO" MODIFY ("ID_ELEM" NOT NULL ENABLE); ALTER TABLE "ELEMENTO" MODIFY ("CIUDAD" NOT NULL ENABLE); ALTER TABLE "ELEMENTO" MODIFY ("TIPO" NOT NULL ENABLE); ALTER TABLE "ELEMENTO" MODIFY ("X" NOT NULL ENABLE); ALTER TABLE "ELEMENTO" MODIFY ("Y" NOT NULL ENABLE); ALTER TABLE "ELEMENTO" MODIFY ("FECHAHORA_CREACION" NOT NULL ENABLE); / -------------------------------------------------------- -- Constraints for Table UNIDAD -------------------------------------------------------- ALTER TABLE "UNIDAD" MODIFY ("ID_ELEM" NOT NULL ENABLE); ALTER TABLE "UNIDAD" MODIFY ("PORCENTAJE_SALUD" NOT NULL ENABLE); ALTER TABLE "UNIDAD" MODIFY ("NOMBRE" NOT NULL ENABLE); ALTER TABLE "UNIDAD" MODIFY ("TIPO" NOT NULL ENABLE); ALTER TABLE "UNIDAD" ADD CONSTRAINT "UNIDAD_PK" PRIMARY KEY ("ID_ELEM") ENABLE; / -------------------------------------------------------- -- Ref Constraints for Table ELEMENTO -------------------------------------------------------- -------------------------------------------------------- -- Ref Constraints for Table UNIDAD -------------------------------------------------------- ALTER TABLE "UNIDAD" ADD CONSTRAINT "UNIDAD_ELEMENTO_FK1" FOREIGN KEY ("ID_ELEM") REFERENCES "ELEMENTO" ("ID_ELEM") ENABLE; /
Published by: BluShadow on December 6, 2012 12:51
addition of {noformat}{noformat} tags for readability of code/data. Please read {message:id=9360002} and learn to do this yourself in future. Edited by: 975362 on 06-12-2012 05:44 AM added example data.
This is because you use X as the parameter to the procedure, and X is a column in the table :)
So use a table alias in the query or use another name for the parameter.
Published by: ascheffer on December 6, 2012 15:04
-
ORA-01403: the application process
Hello
I have I passes the name of the customer in an application process and returns the SUGGESTED field.
The problem I have is when there isn't a record for this customer rather than return to NONE , it returns sqlerrm:ORA - 01403: no data founddeclare l_ID varchar2(100); begin select distinct SUGGESTED into l_ID from dealers, sr_customers where AGREED = 'Y' and dealers.CORP_NAME = sr_customers.corp and sr_customers.corp = :TEMPORARY_ITEM; IF l_ID IS NULL THEN htp.prn('NONE'); ELSE htp.prn(l_ID); END IF; end;
How can I fix?
Concerning
AdamHi Adam,.
Use a slider:
declare l_ID varchar2(100); c SYS_REFCURSOR; begin OPEN c FOR select distinct SUGGESTED from dealers, sr_customers where AGREED = 'Y' and dealers.CORP_NAME = sr_customers.corp and sr_customers.corp = :TEMPORARY_ITEM; FETCH c INTO l_ID; IF c%NOTFOUND THEN htp.prn('NONE'); ELSE htp.prn( l_ID); END IF; CLOSE c; end;
And it is considered it is recommended to use V ('ITEM') in PL/SQL to reference elements.
Variable binding will do just fine...It will be useful,
Greetings,
RutgerPublished by: Rutger on October 8, 2008 07:57
Edit: Sorry mixed something upwards, should work now
Published by: Rutger on October 8, 2008 08:02 -
CREATE or REPLACE (name in varchar2) procedure Compress_tab_partition
is
last_mnth_var varchar2 (8);
curr_mnth_var varchar2 (8);
number of last_mnth;
number of curr_mnth;
last_partition varchar2 (8);
high_val varchar2 (4000);
StartSelect to_char (add_months (trunc (sysdate, 'MM'),-1), 'YYYYMM') | ' 00' in the double last_mnth_var;
Select to_char (sysdate, 'YYYY') | TO_CHAR (sysdate, 'mm') | ' 00' in the double curr_mnth_var;
Select to_number (last_mnth_var) in the double last_mnth;
Select to_number (curr_mnth_var) in the double curr_mnth;Dbms_output.put_line ('Compression of GOLDMGR Table scores.' | table-name |) "to go". ») ;
Dbms_output.put_line(' ');/ * Step 1 - identify the name of the partition of the specified table must be compressed * /.
Select high_value from high_val from user_tab_partitions where table_name = table-name;
Select nom_partition into last_partition from user_tab_partitions where table_name = table-name and high_value = rtrim (high_val);/ * Step 2 - Alter partition table to compress * /.
run immediately "ALTER TABLE GOLDMGR." | table_name | ' CHANGE THE PARTITION '. last_partition | "COMPRESS by low query";
/ * Step 3 - Index rebuild step * /.
I'm in (select index_name in user_indexes where table_name = table-name)
loop
run immediately "ALTER INDEX GOLDMGR." | i.index_name |' REBUILD ";
end loop;Dbms_output.put_line (' COMPLETED: compress the Table partitions change.) ") ;
end;
/I'm getting an error like: Error (21,100): PL/SQL: ORA-00997: illegal use of the LONG data type
Please resolve.
HIGH_VALUE datatype is LONG. You may not use for a long TIME in WHERE clause expressions. You need to loop through the partitions by selecting HIGH_VALUE and then comparing. Secondly, there is no need to select double to calculate expressions. For example:
Select to_char (add_months (trunc (sysdate, 'MM'),-1), 'YYYYMM') | ' 00' in the double last_mnth_var;
should be replaced by
last_mnth_var: = to_char (add_months (trunc (sysdate, 'MM'),-1), 'YYYYMM') | ' 00'.
and there is no need to add_months here:
last_mnth_var: = to_char (trunc (sysdate, 'MM') - 1, "YYYYMM"). ' 00'.
But the main question is simply ALTER TABLE MODIFY PARTITION COMPRESS allows compression but does not compress. You must issue ALTER TABLE MOVE PARTITION COMPRESS:
SQL > create table tbl (n) partition by range (n)
2 (partition p1 values less than (maxvalue))
3. Select lpad('X',4000,'X') from dual connect by level<=>=>
4.Table created.
SQL > select bytes
2 from WHERE user_segments
3 where nom_segment = 'TBL '.
4 and nom_partition = 'P1 '.
5.BYTES
----------
830472192SQL > alter table tbl
2. change the partition p1 compress
3.Modified table.
SQL > select bytes
2 from WHERE user_segments
3 where nom_segment = 'TBL '.
4 and nom_partition = 'P1 '.
5.BYTES
----------
830472192SQL > alter table tbl
2. move the partition p1 compress
3.Modified table.
SQL > select bytes
2 from WHERE user_segments
3 where nom_segment = 'TBL '.
4 and nom_partition = 'P1 '.
5.BYTES
----------
8388608SQL >
SY.
-
Hello
We strive to run a full charge in DAC, but it is a failure.
The S_ASSET table is empty and therefore, we get the error
Could not get column: ORA-01403: no data found
We were not facing this error in DAC 10 g but after upgrade to DCA 11 g, this task has no place if the array is empty. How remove this restriction and DAC will work perfectly even if the tables are empty to full charge?
CAD DETAILS
Console Administration Oracle BI DW
CAD build a 11.1.1.6.4.20121119.2022 Build date: November 19, 2012
Management Console to install, configure, and administer the Warehouse Analytics of Oracle Business
Schema version - 47, Index version - 36, repository version - 6, data version Seed - 16
INFORMATICA - VERSION9.0.1 HF2
Here's the log of IMG_BUILD - S_ASSET when this task was running in DAC 10 g. The task facing any problem when S_ASSET table was empty.
[code]
2013-12-23 15:34:29.644 CHANGE CAPTURE: IMG_BUILD - internal S_ASSET began.
the number of days of prunes: 4
After change data capture: 2013-12-19 12:23:19.332 in full Mode.
2013-12-23 15:34:29.69 - execution:
TRUNCATE TABLE S_ETL_I_IMG_6
2013-12-23 15:34:29.89 - executed successfully.
2013-12-23 15:34:29.9 - execution:
TRUNCATE TABLE S_ETL_R_IMG_6
2013-12-23 15:34:30.145 - executed successfully.
2013-12-23 15:34:30.16 - execution:
TRUNCATE TABLE S_ETL_D_IMG_6
2013-12-23 15:34:30.198 - executed successfully.
2013-12-23 15:34:30.236 - execution:
INSERT / * + APPEND * / INTO S_ETL_R_IMG_6
(ROW_ID, MODIFICATION_NUM, LAST_UPD)
SELECT
ROW_ID
MODIFICATION_NUM
LAST_UPD
Of
S_ASSET
WHERE
LAST_UPD > TO_DATE ('2013-12-19 12:23:19 ',' ' YYYY-MM-DD HH24:MI:SS)
2013-12-23 15:34:30.968 - executed successfully.
2013 12-23 15:34:30.989 - execution of deleting duplicates rowid.
2013-12-23 15:34:31.01 - successfully deleting duplicates rowid.
2013-12-23 15:34:31.27 - execution:
DROP VIEW V_ASSET
2013-12-23 15:34:31.566 - executed successfully.
2013-12-23 15:34:31.569 - execution:
CREATE VIEW V_ASSET AS
SELECT
*
Of
S_ASSET
2013-12-23 15:34:31.743 - executed successfully.
2013-12-23 15:34:31.78 - execution:
SELECT COUNT (*) IN S_ASSET
The County is: 0
Executed successfully: CHANGE CAPTURE: IMG_BUILD - internal S_ASSET
(Number of attempts: 1).
Executed orders:
IMG_BUILD - internal
2013-12-23 15:34:31.851 CHANGE CAPTURE: IMG_BUILD - internal S_ASSET has finished running with the completed state.
The same task, IMG_BUILD - S_ASSET fails when it is running in DAC 11 g, because the table is empty. Here is the log for the failure of the task to 11g.
[code]
2013-12-27 21:21:47.497 acquisition of resources
2013-12-27 21:22:20.33 acquired resources
2013-12-27 21:22:20.787 CHANGE CAPTURE: IMG_BUILD - internal S_ASSET began.
the number of days of plum: 5760
After change data capture: 2013-12-23 21:19:19.233 in full Mode.
21:22:21.211 2013-12-27 - execution:
TRUNCATE TABLE S_ETL_I_IMG_6
2013-12-27 21:22:22.384 - executed successfully.
21:22:22.389 2013-12-27 - execution:
TRUNCATE TABLE S_ETL_R_IMG_6
2013-12-27 21:22:22.532 - executed successfully.
21:22:22.534 2013-12-27 - execution:
TRUNCATE TABLE S_ETL_D_IMG_6
2013-12-27 21:22:22.546 - executed successfully.
21:22:22.55 2013-12-27 - execution:
INSERT / * + APPEND * / INTO S_ETL_R_IMG_6
(ROW_ID, MODIFICATION_NUM, LAST_UPD)
SELECT
ROW_ID
MODIFICATION_NUM
LAST_UPD
Of
S_ASSET
WHERE
LAST_UPD > TO_DATE ('2013-12-23 21:19:19 ',' ' YYYY-MM-DD HH24:MI:SS)
2013-12-27 21:22:22.614 - executed successfully.
2013 12-27 21:22:22.616 - execution of deleting duplicates rowid.
2013-12-27 21:22:24.72 - successfully deleting duplicates rowid.
Could not get column: ORA-01403: no data found
FAULT INFO: Error executing: CHANGE CAPTURE: IMG_BUILD - internal S_ASSET
MESSAGE: com. Siebel.Analytics.etl.Execution.exceptions.ChangeCaptureTaskFailedException: Change Capture failed.
EXCEPTION CLASS: java.lang.RuntimeException
com.siebel.analytics.etl.etltask.GenericTaskImpl.doExecuteWithRetries(GenericTaskImpl.java:536)
com.siebel.analytics.etl.etltask.GenericTaskImpl.execute(GenericTaskImpl.java:372)
com.siebel.analytics.etl.etltask.GenericTaskImpl.execute(GenericTaskImpl.java:253)
com.siebel.analytics.etl.etltask.GenericTaskImpl.run(GenericTaskImpl.java:655)
com.siebel.analytics.etl.taskmanager.XCallable.call(XCallable.java:63)
java.util.concurrent.FutureTask$ Sync.innerRun (FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.Executors$ RunnableAdapter.call (Executors.java:441)
java.util.concurrent.FutureTask$ Sync.innerRun (FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.ThreadPoolExecutor$ Worker.runTask (ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$ Worker.run (ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)
: CAUSE:
MESSAGE: change Capture failed.
EXCEPTION CLASS: com.siebel.analytics.etl.execution.exceptions.ChangeCaptureTaskFailedException
com.siebel.analytics.etl.etltask.ChangeCaptureTask.executeChangeCapture(ChangeCaptureTask.java:93)
com.siebel.analytics.etl.etltask.ChangeCaptureTask.doExecute(ChangeCaptureTask.java:46)
com.siebel.analytics.etl.etltask.GenericTaskImpl.doExecuteWithRetries(GenericTaskImpl.java:477)
com.siebel.analytics.etl.etltask.GenericTaskImpl.execute(GenericTaskImpl.java:372)
com.siebel.analytics.etl.etltask.GenericTaskImpl.execute(GenericTaskImpl.java:253)
com.siebel.analytics.etl.etltask.GenericTaskImpl.run(GenericTaskImpl.java:655)
com.siebel.analytics.etl.taskmanager.XCallable.call(XCallable.java:63)
java.util.concurrent.FutureTask$ Sync.innerRun (FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.Executors$ RunnableAdapter.call (Executors.java:441)
java.util.concurrent.FutureTask$ Sync.innerRun (FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.ThreadPoolExecutor$ Worker.runTask (ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$ Worker.run (ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)
(Number of attempts: 1).
IMG_BUILD - internal
2013-12-27 21:22:31.526 CHANGE CAPTURE: IMG_BUILD - internal S_ASSET has finished running with the Failed state.
[[code
The CREATE VIEW privilege was missing from the CAD database user, therefore, was not to create the step. I have granted CREATE VIEW and all is well.
-
using select * in pl/sql
Hello
Yesterday knani mentioned that using SELECT * in PL/SQL is not a good idea. But I tried creating a table and different procedures to select all the columns using the * and by specifying the columns individually. Later, I changed the table and two procedures became invalid. Can give a simple example to demonstrate the behavior.
At the moment I don't have Oracle in my PC for writing what I tried yesterday.
See you soon,.
Suri
When I run the script after the 2nd time procedure test1 tracks, it fails with "PLS-00905: TEST1 object is invalid", while test2 works well every time.
Feel free to try it yourself!
create table boneist_test (col1, col2 varchar2 number (10));
insert into boneist_test values (1, 'a');
commit;
Create procedure test1
is
number of v_num;
v_var varchar2 (10);
Start
Select *.
in v_num, v_var
of boneist_test
where rownum = 1;
end Test1;
/Create procedure test2
is
number of v_num;
v_var varchar2 (10);
Start
Select col1, col2
in v_num, v_var
of boneist_test
where rownum = 1;
end test2;
/Start
Test1;
end;
/Start
test2;
end;
/ALTER table boneist_test Add (col3 number);
Start
Test1;
end;
/Start
test2;
end;
/drop table boneist_test;
drop procedure test1;
drop procedure test2;
Maybe you are looking for
-
I'm trying to connect my Pavilion dv6 on my HDTV with a HDMI cable. I make the video, but no audio on the TV speakers. The problem started after I upgraded from Vista to Windows 7. I had no problem with HDMI with windows Vista. I tried to date/reinst
-
So I typed a good post and clicked on the post, and it happens with no text. Large. This time I'll type a shorter message. I bought a Y460P. I tried to upgrade the Intel 1000 wifi with an Intel 6200 card. I got the error BIOS is not a supported adapt
-
Question about upgrading memory
Hello I have a HP G62 Notebook pc with 3 GB of ram. I want to upgrade my memory to the maximum which I believe is 8 GB. Is this possible? Is there a question I might encounter? Also, what would be the part number to buy it. Thank you
-
Only a blank page shows when you open Internet Explorer after the start.
I'm starting to feel like an annoying uncle who comes to dinner too often, but I had another problem for you guys. Start goes normally, but when I click on the icon to start Internet Explorer, a blank page is displayed. At the top reads: "Documents a
-
E260 - impossible to use, update or recognize...
I just bought a refurb E260 V1 and I've had it for 2 days and now I can't make it work. I was initially able to use my Vista laptop to load some MP3s and everything was fine. Then I tried to create a playlist in WMP 11 to load a certain MP3s. apparen