VARRY error in PLSQL BLOCK

Hi ALL,
I trying to write plsql anonymous block to return the name of all the employees who belongs to a specific department .
I am writing below script for this and getting the error where as the same logic if i use only in a function instead of creating it
within a procedure , i am not getting any error .. Please help me to fix this issue .
Script :
SET SERVEROUTPUT ON
DECLARE
v_te varchar2(20);
TYPE EMPARRAY is VARRAY(20) OF VARCHAR2(30);
FUNCTION getEmpArray (p_no IN NUMBER)
RETURN EMPARRAY
AS
l_data EmpArray := EmpArray();
CURSOR c_emp
IS
SELECT ename FROM scott.EMP
where deptno=p_no;
BEGIN
FOR emp_rec IN c_emp LOOP
l_data.extend;
l_data(l_data.count) := emp_rec.ename;
END LOOP;
END;
begin
SELECT getEmpArray (10)
INTO v_te
FROM dual;
dbms_output.put_line(v_te);
end;

user4199159 wrote:
If this is working with a function without putting it in any anonymous block ....then is this not working in a anonymous block .
Like this :
RETURN SUBSTR(l_data,7);
SELECT getEmpArray FROM dual;
It looks like you are missing too many concepts of PL/SQL. I suggest you to start reading the documentation before practicing and memorizing wrong ways to approach things like VARRAY and collections.
What exactly do you expect Oracle to retrieve from SUBSTR(VARRAY_variable, 7)? Substr of a string isn't same as substr of VARRAY. It is completely incorrect.
The select statement does not work because the function expects a parameter.
This is an example I tested at my database, becauseot have scott and other databases installed
create table test_table (col number);
insert into test_table
select level from dual connect by level <= 5;
CREATE OR REPLACE TYPE emparray is VARRAY(20) OF VARCHAR2(30);
CREATE OR REPLACE FUNCTION getEmpArray (p_no IN NUMBER default 0)
RETURN EMPARRAY
AS
l_data emparray := emparray();
CURSOR c_emp IS SELECT col FROM test_table;
BEGIN
FOR emp_rec IN c_emp LOOP
l_data.extend;
l_data(l_data.count) := emp_rec.col;
end loop;
return l_data;
--RETURN SUBSTR(l_data,7);
END;
select getemparray(1) from dual;
GETEMPARRAY(1)
FDL_BAU.EMPARRAY(1,2,3,4,5)
select getemparray from dual;
GETEMPARRAY
XXX.EMPARRAY(1,2,3,4,5)

Similar Messages

  • Am facing this error sqlcode :-6502 while running sql code in plsql block

    Am facing this error sqlcode :-6502 while running sql code in plsql block.
    am using query :
    SELECT SUBSTR('123456DE789KL|987654321|B',1,INSTR('123456DE789KL|987654321|B','|')-1) FROM DUAL;
    CAN any body tell me why.

    BD_Fayez wrote:
    I've tried the following, but don't get any error.As I mentioned, most likely variable is too short:
    SQL> declare
      2  strSub varchar2(2);
      3  begin
      4  SELECT SUBSTR('123456DE789KL|987654321|B',1,INSTR('123456DE789KL|987654321|B','|')-1) into strSub FROM DUAL;
      5  dbms_output.put_line(strSub);
      6  end;
      7  /
    declare
    ERROR at line 1:
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    ORA-06512: at line 4
    SQL> SY.

  • Plsql block error

    I have small PLSQL block with a bind variable in it which throws an error on its execution.
    declare
    cursor c1 is select product_name from PRODUCTS where month=:m;
    begin
    for i in c1 loop
    dbms_output.put_line(i.product_name);
    end loop;
    end;
    It thows the error
    ORA-01008: not all variables bound
    Is it not possible to have a bind variable in a cursor?
    Please help
    Regards

    If you're using SQL*Plus you need to declare and set the bind variable...
    SQL> set serverout on;
    SQL> var d number;
    SQL> exec :d := 20;
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.07
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2    cursor c1 is select ename from emp where deptno=:d;
      3  begin
      4    for i in c1 loop
      5      dbms_output.put_line(i.ename);
      6    end loop;
      7* end;
    SQL> /
    SMITH
    JONES
    SCOTT
    ADAMS
    FORD
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:00.06
    SQL>

  • Using Execute Immediate in PLSQL block Vs Stand alone procedure

    I am facing very unusual ( atleast unusual to me ) with usage of "Execute Immediate" statement.
    I have a table dynamic_sql with one column plsql_block as VARCHAR2(4000);
    I have stored some PLSQL blocks ('DECLARE ..... BEGIN.... END.... ) in this column .
    Now I want to execute these PLSQL blocks one after other depending on certain conditions .
    In order to archive this I wrote a PLSQL block as below
    DECLARE
    Cursor c1 is
    select plsql_block from dynamic_sql
    begin
    for irec in c1
    loop
    <<< Condition >>>
    begin
    execute_immediate(irec.plsql_block);
    exception
    when others then
    raise_application_error(-20001,'error ' ||irec.plsql_block||' '||sqlerrm);
    end loop ;
    end ;
    With above PLSQL block , "execute immediate" is executing PLSQL block successfully without any error
    But When I converted above PLSQL block into standalone procedure as shown below , I am getting error .
    CREATE OR REPLACE procedure test AS
    Cursor c1 is
    select plsql_block from dynamic_sql
    begin
    for irec in c1
    loop
    <<< Condition >>>
    begin
    execute_immediate(irec.plsql_block);
    exception
    when others then
    raise_application_error(-20001,'error ' ||irec.plsql_block||' '||sqlerrm);
    end loop ;
    end ;
    BEGIN
    test;
    end ;
    It is showing the value of irec.plsql_block but not showing sqlerrm...
    I found this is very unusual as I am able to execute "execute immediate" statement with PLSQL block but not with similar procedure .
    can anybody explain me why this is happening?
    Thanks in Advance
    Amit

    Hello,
    It doesn't make any sense to add SQLERRM for user defined exception, unless you want to raise application error for already defined error (e.g NOT_DATA_FOUND, ..)
    Check following piece of code and its output,
    CREATE OR REPLACE PROCEDURE myinsert1
    AS
       v_count   NUMBER;
       v_sql     VARCHAR2 (300);
    BEGIN
       v_sql :=
          'INSERT INTO ENTITY_EMPLOYEE VALUES(0,''TIM'',''LASTNAME'',10000)';
       BEGIN
          EXECUTE IMMEDIATE v_sql;
          COMMIT;
       EXCEPTION
          WHEN OTHERS
          THEN
             DBMS_OUTPUT.PUT_LINE (SUBSTR (SQLERRM, 1, 300));
             RAISE_APPLICATION_ERROR (-20002, 'My Error ' || SQLERRM, TRUE);
             RAISE;
       END;
    END;
    Output._
    ORA-20002: My Error ORA-00001: unique constraint (ENTITY_EMPLOYEE_PK) violated
    ORA-06512: at "MYINSERT1", line 21
    ORA-00001: unique constraint (ENTITY_EMPLOYEE_PK) violated
    ORA-06512: at line 2
    Regrds

  • Output parameter in plsql Block fails

    Hello. I am testing using an anonymous Plsql block with one in and out parameter. The in parameter work fine but when I add the out, the plsql block fails.
    This is my environment on a Windows 7 client attaching to a Solaris server. I am using Powershell 3.0, but it is very similar to #c. I have a .net framework of 4.5.
    PS L064217>    $GAC = $Env:Oracle_Home + "\" + "ODP.NET\bin\4\Oracle.DataAccess.dll"
    PS L064217>    [Void] [Reflection.Assembly]::LoadFile($Gac)
    PS L064217> [Reflection.Assembly]::LoadFile($Gac)
    GAC    Version        Location
    True   v4.0.30319     C:\windows\Microsoft.Net\assembly\GAC_64\Oracle.DataAccess\v4.0_4.112.3.0__89b4
    SQL*Plus: Release 11.2.0.3.0 Production on Wed Nov 28 19:09:57 2012
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing optionsHere is a sample of my test code:
    # Define Plsql Anonymous Block
    $Table1 = 'AdvSearch_Statutes'
    $Table2 = ($Table1).Substring(0, $Table1.Length-1) + '_Docs'
    $Caml_Doc_Id = 'CHP201500010'
    $Sql =  " DECLARE "
    $Sql += "   vCamlId      VARCHAR2(30)  := ':Param1' "
    $Sql += "   vPath_Tx     VARCHAR2(200); "
    $Sql += "   vDelRows_Nr  PLS_INTEGER := 0; "
    $Sql += "   CURSOR Docs_Cur IS "
    $Sql += "       SELECT XPath "
    $Sql += "       FROM $Table2 "
    $Sql += "       WHERE Caml_Doc_Id = vCamlId; "
    $Sql += " BEGIN "
    $Sql += "   OPEN Docs_Cur; "
    $Sql += "   LOOP "
    $Sql += "     FETCH Docs_Cur INTO vPath_Tx; "
    $Sql += "     EXIT WHEN Docs_Cur%NOTFOUND; "
    $Sql += "     IF (DBMS_XDB.ExistsResource(vPath_Tx)) "
    $Sql += "     THEN "
    $Sql += "       DelRows_Nr := DelRows_Nr + 1; "
    $Sql += "       DBMS_XDB.DeleteResource(vPath_Tx, DBMS_XDB.DELETE_RECURSIVE_FORCE); "
    $Sql += "     END IF; "
    $Sql += "   END LOOP; "
    $Sql += "   DELETE FROM $Table2 WHERE Caml_Doc_Id = vCamlId; "
    $Sql += "   vDelRows_Nr := vDelRows_Nr + SQL%ROWCOUNT; "
    $Sql += "   DELETE FROM $Table1 WHERE Caml_Doc_Id = vCamlId; "
    $Sql += "   vDelRows_Nr := vDelRows_Nr + SQL%ROWCOUNT; "
    $Sql += "   SELECT vDelRows_Nr INTO :Param2 FROM Dual; "
    $Sql += " EXCEPTION "
    $Sql += "   WHEN OTHERS THEN ROLLBACK; "
    $Sql += " END; "
    # Set up the Connection and command objects using the prior defined information.  Ensure that
    # Bind by name is used.
    $Conn = New-Object Oracle.DataAccess.Client.OracleConnection($Connect_Str)
    $Cmd  = New-Object Oracle.DataAccess.Client.OracleCommand($Sql, $Conn)
    $Cmd.BindByName = $True
    #Set up the parameters for use with the Sql command.
    $Param1 = New-Object Oracle.DataAccess.Client.OracleParameter
    $Param2 = New-Object Oracle.DataAccess.Client.OracleParameter
    $Param1.DbType = 'AnsiString'
    $Param1.OracleDbType = 'Varchar2'
    $Param1.Direction = 'Input'
    $Param1.ParameterName = ':Param1'
    $Param1.Value = $Caml_Doc_Id
    $Param2.DbType = 'Int32'
    $Param2.OracleDbType = 'Int32'
    $Param2.Direction = 'Output'
    $Param2.ParameterName = ':Param2'
    [Void] $Cmd.Parameters.Add($Param1)
    [Void] $Cmd.Parameters.Add($Param2)
    # Open connection to database and execute the command
    Try
       $Conn.Open();
       $Result = $Cmd.ExecuteNonQuery();
       If ($Param2.Value -Eq $Null) {$Counts = 0}
       Else {$Count  = ($Param2.Value).ToString()}
       Write-Host "Return Code:  $Result"
       Write-Host "Rows Deleted:  $Counts"
    Catch [System.Exception]
      $Param2
      Write-Host $_.Exception.ToString() -ForeGroundColor "Red"
    Finally
      $Conn.Close();
      $Conn.Dispose();
      "`nSuccessful end of script"
    }I have some output. It all seems to be okay. I am following a book rather closely, but after several attempts changing one thing or another, I still cannot find a way to send an out value. I have commented out the " SELECT vDelRows_Nr INTO :Param2 FROM Dual; " and that is the problem statement. Thank you for your help. The first portion is the plsql being echoed back, then I list out what Param2 is defined at. The last bit is the error returned.
    PS L064217> .\Test_Odp_PLsqlBlock.ps1
    DECLARE    vCamlId      VARCHAR2(30)  := ':Param1'    vPath_Tx     VARCHAR2(200);    vDelRows_Nr  PLS_INTEGER := 0;
    CURSOR Docs_Cur IS        SELECT XPath        FROM AdvSearch_Statute_Docs        WHERE Caml_Doc_Id = vCamlId;  BEGIN
      OPEN Docs_Cur;    LOOP      FETCH Docs_Cur INTO vPath_Tx;      EXIT WHEN Docs_Cur%NOTFOUND;      IF (DBMS_XDB.ExistsR
    esource(vPath_Tx))      THEN        DelRows_Nr := DelRows_Nr + 1;        DBMS_XDB.DeleteResource(vPath_Tx, DBMS_XDB.DEL
    ETE_RECURSIVE_FORCE);      END IF;    END LOOP;    DELETE FROM AdvSearch_Statute_Docs WHERE Caml_Doc_Id = vCamlId;    v
    DelRows_Nr := vDelRows_Nr + SQL%ROWCOUNT;    DELETE FROM AdvSearch_Statutes WHERE Caml_Doc_Id = vCamlId;    vDelRows_Nr
    := vDelRows_Nr + SQL%ROWCOUNT;    SELECT vDelRows_Nr INTO :Param2 FROM Dual;  EXCEPTION    WHEN OTHERS THEN ROLLBACK;
    END;
    DbType                  : Int32
    SourceColumnNullMapping : False
    Direction               : Output
    IsNullable              : False
    Offset                  : 0
    OracleDbTypeEx          : Int32
    OracleDbType            : Int32
    ParameterName           : :Param2
    Precision               : 0
    Scale                   : 0
    Size                    : 0
    ArrayBindSize           :
    SourceColumn            :
    SourceVersion           : Current
    Status                  : Success
    ArrayBindStatus         :
    CollectionType          : None
    Value                   :
    UdtTypeName             :
    Oracle.DataAccess.Client.OracleException ORA-01036: illegal variable name/number    at Oracle.DataAccess.Client.OracleEx
    ception.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object sr
    c, String procedure, Boolean bCheck)
       at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
       at CallSite.Target(Closure , CallSite , Object )Edited by: CRoberts on Nov 28, 2012 7:30 PM

    As test
    use NUMBER instead of PLS_INTEGER in PL/SQL
    and
    use Decimal instead of Int32 for Oracle parameter datatype

  • Can I use Count, Max function in PLSQL BLOCK.

    Can U help me to use count, max function in PLSQL BLOCK.
    Because it is giving me error "It is a SQL function"

    SELECT COUNT(*)
    INTO l_variable
    FROM dual;
    Will work inside PL/SQL

  • PLSQL BLOCK TO RUN A TYPE PROCEDURE

    I have created a type called bank_account which has many member functions and procedures to open ,close,deposit and withdraw.I have created a type body where these member functions are defined.i have created a table based on this type.
    Now my problem is that the plsql block that i have written to call the member function open gives the following error:
    method dispatch on NULL SELF argument is disallowed
    the plsql block is as given below:
    SQL> run
    1 declare
    2 amount real;
    3 a bank_account(this is the type);
    4 begin
    5 amount:=&amount;
    6 a.open(amount);
    7 dbms_output.put_line('account opened');
    8* end;
    Enter value for amount: 5
    old 5: amount:=&amount;
    new 5: amount:=5;
    declare
    ERROR at line 1:
    ORA-30625: method dispatch on NULL SELF argument is disallowed
    ORA-06512: at line 6
    please help me to solve my problem
    null

    I have created a type called bank_account which has many member functions and procedures to open ,close,deposit and withdraw.I have created a type body where these member functions are defined.i have created a table based on this type.
    Now my problem is that the plsql block that i have written to call the member function open gives the following error:
    method dispatch on NULL SELF argument is disallowed
    the plsql block is as given below:
    SQL> run
    1 declare
    2 amount real;
    3 a bank_account(this is the type);
    4 begin
    5 amount:=&amount;
    6 a.open(amount);
    7 dbms_output.put_line('account opened');
    8* end;
    Enter value for amount: 5
    old 5: amount:=&amount;
    new 5: amount:=5;
    declare
    ERROR at line 1:
    ORA-30625: method dispatch on NULL SELF argument is disallowed
    ORA-06512: at line 6
    please help me to solve my problem
    null

  • Unable to insert row in object table from plsql block

    I have table called test based on an object type. When I issue an insert statement from sqlplus, the row is inserted. The exact same sql statement in a plsql block gives the error below. Any ideas? (it is not a constraint problem).
    SQL> insert into test values( 3,2,1,1,'asp',1,'mach' );
    1 row created.
    SQL> begin
    2 insert into test values( 3,2,1,1,'asp',1,'mach' );
    3 end;
    4 /
    insert into test values( 3,2,1,1,'asp',1,'mach' );
    ERROR at line 2:
    ORA-06550: line 2, column 16:
    PL/SQL: ORA-06552: PL/SQL: Compilation unit analysis terminated
    ORA-06553: PLS-302: component 'DOCUMENT' must be declared
    ORA-06550: line 2, column 4:
    PL/SQL: SQL Statement ignored
    (ddl)
    CREATE OR REPLACE type document as object
    DOC_ID NUMBER (38),
    BATCH_ID NUMBER (38),
    STATE NUMBER (2),
    TRANSIENT NUMBER (2),
    ASP VARCHAR2 (20),
    USER_ID NUMBER (6),
    MACHINE VARCHAR2 (30),
    MEMBER PROCEDURE setState,
    MEMBER function getState RETURN NUMBER
    ) not final;
    create table test of document;

    Hi Adam
    You need to instantiate your object type in your insert statement(while doing through PL/SQL block), so try like this
    Insert into test values(document(1,2,'CO',55,'xyz','kkk','PENTIUM'));
    The reason you were successful through SQLPLUS was that, SQLPLUS automatically instantiate the values into object type.
    Qurashi

  • Unix command from Plsql block

    Hi all ,
    I have tried unix command from PLSQL Block,
    Please see the code.
    DECLARE
    stat INTEGER;
    host_command varchar2(100);
    errormsg VARCHAR2(80);
    command varchar2(2000);
    BEGIN
    command:='touch /home/oracle/testting.txt';
    dbms_pipe.reset_buffer;
    host_command:= dbms_pipe.unique_session_name;
    dbms_output.put_line('host_command:'||host_command);
    dbms_pipe.pack_message(command);
    dbms_output.put_line('pack message:'||command);
    stat := dbms_pipe.send_message(host_command);
    dbms_output.put_line('stat:'||stat);
    IF stat <> 0 THEN
    raise_application_error(-20000, 'Error:'||TO_CHAR(stat)||' sending on pipe');
    END IF;
    stat := dbms_pipe.receive_message(host_command);
    dbms_output.put_line('stat2:'||stat);
    IF stat <> 0 THEN
    raise_application_error(-20000, 'Error:'||TO_CHAR(stat)||' receiving on pipe');
    END IF;
    dbms_pipe.unpack_message(errormsg);
    dbms_output.put_line('errormsg:'||errormsg);
    IF errormsg <> 'SUCCESS' THEN
    raise_application_error(-20000, 'Execution error: '||errormsg);
    END IF;
    END;
    Nothing happend from this code just getting only following result with error.
    -----------------result-----------------------------
    host_command:ORA$PIPE$002D19820001
    pack message:touch /home/oracle/testting.txt
    stat:0
    stat2:0
    errormsg:touch /home/oracle/testting.txt
    DECLARE
    ERROR at line 1:
    ORA-20000: Execution error: touch /home/oracle/testting.txt
    ORA-06512: at line 33
    Can any one tell me what i doing wrong in this code.
    I m working on Oracle 11g and AIX unix server.

    This is the forum for the SQL Developer product, not for general PL/SQL questions. There is a link to the SQL and PL/SQL forum in the announcement at the top of this forum.

  • Problem with plsql block

    Hello All,
    I have a sql query which i am trying to put it in plsql block.It throws me an error saying i cannot have group function as my two select strings gives me more than one row. How to tackle this??
    declare
    uuid varchar;
    stat_date date;
    begin
    select 'I'||Lower(docfamily_uuid) into uuid, max(status_date) into stat_date from document_status where status_code=303 or status_code=305 group by docfamily_uuid;
    end;
    Thanks

    In addition to being mal-formed it is likely your problem stems from the fact that your query is returning more than one row. Now perhaps you are expecting only one row and your GROUP BY might be getting in the way. Try changing your GROUP BY to include the LOWER function that is in your SELECT statement. But realize that this in itself will not guarentee one row returning from the SELECT statement.
    WITH document_status AS
    SELECT 'xxx' docfamily_uuid, sysdate status_date, 303 status_code from dual
    UNION ALL
    SELECT 'XXX' docfamily_uuid, sysdate status_date, 303 status_code from dual
    SELECT 'I'||Lower(docfamily_uuid), max(status_date)
    FROM   document_status
    WHERE  status_code=303 or status_code=305
    GROUP BY docfamily_uuid;
    Ixxx     05-FEB-09
    Ixxx     05-FEB-09
    WITH document_status AS
    SELECT 'xxx' docfamily_uuid, sysdate status_date, 303 status_code from dual
    UNION ALL
    SELECT 'XXX' docfamily_uuid, sysdate status_date, 303 status_code from dual
    SELECT 'I'||Lower(docfamily_uuid), max(status_date)
    FROM   document_status
    WHERE  status_code=303 or status_code=305
    GROUP BY LOWER(docfamily_uuid);
    Ixxx     05-FEB-09Greg

  • Error message without blocking Input fields

    Hi,
    I want to display an error message in the selection screen. The error is for input date validation. But the once error displays in the status bar, it blocks the input fields in the selection screen. I want to display the error message without blocking any of the input parameter in the selection screen. Where should i write the code?
    Thanks in advance.
    Ezhil

    Hi Ezhilhrh
    I think you could have done a trial with different message types before posting this question.
    Please try with success message(Type - S) and DISPLAY LIKE 'E'.
    And also control the program flow using a flag or by checking the initiality of your internal table.
    Regards
    Hareesh Menon

  • ORA-01403: no data found Error in PLSQL code raised during plug-in processing.

    Hello OTN community,
    We are having the access to APEX problem. a New user was setup to access the APEX application. When I test to login as a new user, I get the message "ORA-01403: no data found Error in PLSQL code raised during plug-in processing.". When click OK to the disply message, the application will take me out of the sstem. I need help to even understand what is happening. I didn't develop the application, there is no documentation for this application, I am just supporting the application whenever there is a problem and I am new to APEX. As you can see I need help to figure this thing out. Your help is dearly appreciated.
    Thank you OTN

    Try to check the query that is executed and check if there is data or not

  • Acrobat 7 mandatory update failing with error 16820 and blocking the use of the program

    Acrobat 7 mandatory update failing with error 16820 and blocking the use of the program

    Sorry I can't get the screen print to upload
    It says
    Mandatory Update Available
    A Mandatory version of this application is available for download. Application can't continue without installing this version.
    Application:     Acrobat_com
    Installed version: 2.0.0.0
    Update Version : 2.3.0.0
    Download now                    Quit
    Release notes ( this is blank)
    After selecting 'Download Now' I get the following message;
         Download failed
         There was an error downloading the update. Error #16820
         Close

  • Trap error in decleration block..?

    in below code I know at line no 2 there is error of pricision length is too large.
    but i want to trap this error in exception or meant to say I want to display error message "number precision too large" while running this codelike other exception in code.what is the possible way to trap this error in exception block.i wrote if block to trap it but its not working..
    DECLARE
    X NUMBER(2):=111;
    Y NUMBER;
    PCEXP EXCEPTION;
    BEGIN
    IF LENGTH(X)>2 THEN
    RAISE PCEXP;
    END IF;
    SELECT SUM(SAL) INTO Y FROM EMP;
    EXCEPTION
    WHEN PCEXP THEN
    DBMS_OUTPUT.PUT_LINE('PCEXP CAUGHT..');
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('OTHERS CAUGHT');
    END;

    Hi,
    welcome in the Installation forum. I think you should post your question in the PL/SQL forum. Here the link:
    PL/SQL
    Cheers,
    David
    OCP 9i / 10g / 11g
    http://www.oratoolkit.ch/knowledge/howto/installation/otn.php

  • RAC Create ORA-00206: error in writing (block 3, # blocks 1) of controlfile

    Why i am getting this error durint RAC DB Creation using dbca -datafileDestination /var/opt/oracle/oradata/orcl
    I cheek the directory and i am seeing 3 control files created in it. Out put of my alert.log file
    Any idea?
    =================================================
    Starting ORACLE instance (normal)
    Sun Apr 11 12:07:59 2004
    Global Enqueue Service Resources = 64, pool = 1
    Sun Apr 11 12:07:59 2004
    Global Enqueue Service Enqueues = 128
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    GES IPC: Receivers 1 Senders 1
    GES IPC: Buffers Receive 1000 Send 530 Reserve 300
    GES IPC: Msg Size Regular 396 Batch 2048
    SCN scheme 2
    Using log_archive_dest parameter default value
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 9.2.0.4.0.
    System parameters with non-default values:
    processes = 150
    timed_statistics = TRUE
    shared_pool_size = 150994944
    large_pool_size = 33554432
    java_pool_size = 16777216
    control_files = /var/opt/oracle/oradata/orcl/control01.ctl, /var/opt/oracle/oradata/orcl/control02.ctl, /var/opt/oracle/oradata/orcl/control03.ctl
    db_block_size = 8192
    db_cache_size = 50331648
    compatible = 9.2.0.0.0
    db_file_multiblock_read_count= 16
    cluster_database_instances= 1
    thread = 1
    fast_start_mttr_target = 300
    instance_number = 1
    undo_management = AUTO
    undo_tablespace = UNDOTBS1
    undo_retention = 10800
    remote_login_passwordfile= EXCLUSIVE
    db_domain =
    instance_name = orcl
    local_listener = LISTENER_ORCL1
    remote_listener = LISTENERS_ORCL
    hash_join_enabled = TRUE
    background_dump_dest = /ora01/oracle/admin/orcl/bdump
    user_dump_dest = /ora01/oracle/admin/orcl/udump
    core_dump_dest = /ora01/oracle/admin/orcl/cdump
    sort_area_size = 524288
    db_name = orcl
    open_cursors = 300
    star_transformation_enabled= FALSE
    query_rewrite_enabled = FALSE
    pga_aggregate_target = 60817408
    Sun Apr 11 12:07:59 2004
    cluster interconnect IPC version:Oracle UDP/IP
    IPC Vendor 1 proto 2 Version 1.0
    PMON started with pid=2
    DIAG started with pid=3
    LMON started with pid=4
    LMD0 started with pid=5
    DBW0 started with pid=6
    LGWR started with pid=7
    CKPT started with pid=8
    SMON started with pid=9
    RECO started with pid=10
    Sun Apr 11 12:08:02 2004
    CREATE DATABASE orcl
    MAXINSTANCES 32
    MAXLOGHISTORY 0
    MAXLOGFILES 192
    MAXLOGMEMBERS 3
    MAXDATAFILES 1024
    DATAFILE '/var/opt/oracle/oradata/orcl/orcl/system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
    EXTENT MANAGEMENT LOCAL
    DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/var/opt/oracle/oradata/orcl/orcl/temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
    UNDO TABLESPACE "UNDOTBS1" DATAFILE '/var/opt/oracle/oradata/orcl/orcl/undotbs01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
    CHARACTER SET WE8ISO8859P1
    NATIONAL CHARACTER SET AL16UTF16
    LOGFILE GROUP 1 ('/var/opt/oracle/oradata/orcl/orcl/redo01.log') SIZE 5M REUSE,
    GROUP 2 ('/var/opt/oracle/oradata/orcl/orcl/redo02.log') SIZE 5M REUSE
    Sun Apr 11 12:08:02 2004
    lmon registered with NM - instance id 1 (internal mem no 0)
    Sun Apr 11 12:08:03 2004
    Reconfiguration started
    List of nodes: 0,
    Global Resource Directory frozen
    one node partition
    Communication channels reestablished
    Master broadcasted resource hash value bitmaps
    Non-local Process blocks cleaned out
    Resources and enqueues cleaned out
    Resources remastered 0
    set master node info
    Submitted all remote-enqueue requests
    Update rdomain variables
    Dwn-cvts replayed, VALBLKs dubious
    All grantable enqueues granted
    0 GCS shadows traversed, 0 replayed, 0 unopened
    Submitted all GCS remote-cache requests
    Sun Apr 11 12:08:03 2004
    Reconfiguration complete
    Post SMON to start 1st pass IR
    Sun Apr 11 12:08:24 2004
    Database mounted in Exclusive Mode.
    Sun Apr 11 12:08:35 2004
    Successful mount of redo thread 1, with mount id 1051001763.
    Assigning activation ID 1051001763 (0x3ea503a3)
    Thread 1 opened at log sequence 1
    Current log# 1 seq# 1 mem# 0: /var/opt/oracle/oradata/orcl/orcl/redo01.log
    Successful open of redo thread 1.
    Sun Apr 11 12:08:38 2004
    SMON: enabling cache recovery
    Sun Apr 11 12:08:38 2004
    WARNING: Default passwords for SYS and SYSTEM will be used.
    Please change the passwords.
    Sun Apr 11 12:08:38 2004
    create tablespace SYSTEM datafile '/var/opt/oracle/oradata/orcl/orcl/system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
    EXTENT MANAGEMENT LOCAL online
    Sun Apr 11 12:10:08 2004
    Errors in file /ora01/oracle/admin/orcl/bdump/orcl1_ckpt_16649.trc:
    ORA-00206: error in writing (block 3, # blocks 1) of controlfile
    ORA-00202: controlfile: '/var/opt/oracle/oradata/orcl/control03.ctl'
    ORA-27072: skgfdisp: I/O error
    Linux Error: 5: Input/output error
    Additional information: 2
    ORA-00206: error in writing (block 3, # blocks 1) of controlfile
    ORA-00202: controlfile: '/var/opt/oracle/oradata/orcl/control01.ctl'
    ORA-27072: skgfdisp: I/O error
    Linux Error: 5: Input/output error
    Additional information: 2
    Sun Apr 11 12:10:08 2004
    Errors in file /ora01/oracle/admin/orcl/bdump/orcl1_ckpt_16649.trc:
    ORA-00221: error on write to controlfile
    ORA-00206: error in writing (block 3, # blocks 1) of controlfile
    ORA-00202: controlfile: '/var/opt/oracle/oradata/orcl/control03.ctl'
    ORA-27072: skgfdisp: I/O error
    Linux Error: 5: Input/output error
    Additional information: 2
    ORA-00206: error in writing (block 3, # blocks 1) of controlfile
    ORA-00202: controlfile: '/var/opt/oracle/oradata/orcl/control01.ctl'
    ORA-27072: skgfdisp: I/O error
    Linux Error: 5: Input/output error
    Additional information: 2
    Sun Apr 11 12:10:08 2004
    CKPT: terminating instance due to error 221
    Sun Apr 11 12:10:09 2004
    System state dump is made for local instance
    Sun Apr 11 12:10:09 2004
    Trace dumping is performing id=[cdmp_20040411121009]
    Sun Apr 11 12:10:13 2004
    Instance terminated by CKPT, pid = 16649
    =================================================

    dear karan & all
    i have copied "control file" from another location but now it generate an error
    SQL> startup
    ORACLE instance started.
    Total System Global Area  557842432 bytes
    Fixed Size                  1250140 bytes
    Variable Size             289410212 bytes
    Database Buffers          264241152 bytes
    Redo Buffers                2940928 bytes
    ORA-00211: control file does not match previous control files
    ORA-00202: control file: 'F:\ORACLE\IDS\SAPDATA1\CNTRL\CNTRLIDS.DBF'
    SQL>
    now tell me what can i do
    regard

Maybe you are looking for

  • HOW TO SET UP PARTNER APPLICATION TO USE SSO OUTSIDE OF PORTAL

    If anyone knows how Portal switches context to run as the db user mapped to the lightweight schema and how it knows the db schema password please let me know. Should you have any queries please do not hesitate to contact me on 07775 896738. From docu

  • Can't import live video from Sony PD 170.

    Just got Final Cut Pro X. In a New Event I am able to import live video from the new MacBook Pro computer's built-in camera and pre-recorded video from my Sony PD-170 camera. However, when trying to import live video from the PD-170, the program only

  • Adding Date to Column Header

    Hi I'm having some issues getting a date into a column header for a tab report I am creating. this thread Re: sysdate in region header suggested using a hidden item and having a pl/sql function body and including the item in the header. So I set the

  • XI3.0: SOAP-Adapter Exception

    Hi All, I'm trying to send a message to a web service via the SOAP adapter. Unfortunately the SOAP adapter throws the following exception: <i> SOAP: error occured: com.sap.aii.messaging.srt.BubbleException: Failed to call the endpoint: HTTP 0 null [n

  • Delegate class to access non-public methods during testing?

    In the following video, towards the end, someone asked that FlexUnit assumes functions and methods are to be public when tested. http://tv.adobe.com/watch/max-2008-develop/testing-your-flex-applications-by-michael-labri ola/ The speaker replied (@ 52