Error ORA-02287: sequence number not allowed here

Hello

I got an error ORA-02287: unauthorized here when you run sql statement insert below sequence number.

INSERT INTO SI_KEY_DBF
(M_IDENTITY, M_REF, M_GROUP, M_, M_TYPE, M_MULTIPLE, M_START, M_END, M_PREVIOUS, M_NEXT, M_INS_DATE, M_MOD_DATE,
M_INS_TIME, M_MOD_TIME, M_AMEND, M_LABEL, M_ENTITY, M_TRN_FAMILY, M_TRN_GROUP, M_TRN_TYPE, M_CURRENCY,
M_O_CUR, M_NOVO, M_CRDE, M_CODE, M_USER, M_VAL_STATUS, M_STL_METHOD, M_TRD_SECT, M_COMMENT, M_MARKET,
M_CLEARER, M_SI_TCI)
(SELECT M_IDENTITY, (SELECT SI_KEY_DBFS.nextval FROM dual), M_GROUP, m_, M_TYPE, M_MULTIPLE, NULL, NULL, M_PREVIOUS, M_NEXT, SYSDATE, SYSDATE,
To_Char(sysdate,'HH:mm:SS'), To_Char(SYSDATE,'HH:MM:SS'), 0, M_LABEL, M_ENTITY, M_TRN_FAMILY,.
M_TRN_GROUP, M_TRN_TYPE, M_CURRENCY, M_O_CUR, M_NOVO, M_CRDE, M_CODE, M_USER, M_VAL_STATUS,
M_STL_METHOD, M_TRD_SECT, M_COMMENT, M_MARKET, M_CLEARER, M_SI_TCI FROM SI_KEY_DBF WHERE M_REF IN
(M_REF SELECT TABLE #DATA #SITRN_DBF WHERE M_HLD_AC IN (SELECT IDXOAC FROM DDINDX)))

Can someone help me on how to solve this problem? Really appreciate your help. Thank you.

>
(SELECT M_IDENTITY, (SELECT SI_KEY_DBFS.nextval FROM dual),
>
You already choose to get rid of the nested select statement and simply use the value

(SELECT M_IDENTITY, SI_KEY_DBFS.nextval, 

Tags: Database

Similar Questions

  • ORA-02287: sequence number not allowed here

    < police = "Courier New" >
    Hello
    Why do I have this problem?
    Insert an order tab2 select tab2_seq.nextval, eng_cat from (select distinct job_det eng_cat) by 2.

    SQL > r
    1 * insert into tab2_seq.nextval select eng_cat select (separate eng_cat tab2
    Insert in tab2 select tab2_seq.nextval, eng_cat from (select distinct eng_cat from)
    *
    ERROR on line 1:
    ORA-02287: sequence number not allowed here

    Thank you and best regards,
    Human
    < / make >

    It's 'order of 2' which makes it fail. That makes no sense at all?
    Just remove the order by clause, then it works ;-)

  • ORA-01733-virtual column not allowed here - insert using inline view

    Does anyone know why I get ORA-01733-virtual column not allowed here

    SQL > select * from v version $;

    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    PL/SQL release 11.1.0.6.0 - Production
    CORE 11.1.0.6.0 Production
    AMT for 32-bit Windows: Version 11.1.0.6.0 - Production
    NLSRTL Version 11.1.0.6.0 - Production



    -no error without the WITH CHECK option

    SQL > INSERT INTO
    2 (SELECT
    3 location_id,
    4 city
    5 l.country_id
    6 OF country c, localities, regions r l
    7 where l.country_id = c.country_id
    8 and c.region_id = r.region_id
    9 and r.region_name = 'Asia')
    10 VALUES (5500, 'Common Wansdworth', 'UK');

    1 line of creation.

    SQL > rollback;

    Complete restoration.


    -error with WITH CHECK OPTION


    SQL > INSERT INTO
    2 (SELECT
    3 location_id,
    4 city
    5 l.country_id
    6 OF country c, localities, regions r l
    7 where l.country_id = c.country_id
    8 and c.region_id = r.region_id
    9 and r.region_name = 'Asia' WITH CHECK OPTION)
    10 VALUES (5500, 'Common Wansdworth', 'UK');
    INSERT INTO
    *
    ERROR on line 1:
    ORA-01733: virtual column not allowed here




    I was expecting

    ORA-01402: discovers the violation of where WITH CHECK OPTION clause

    for the second. Am I missing here?

    Coskan wrote:
    Randolf

    Thanks a lot for the update of this old question
    After reading the link, I think I should ignore this error and accept him as ORA-01402

    The information that you have asked me to check me do not have an understanding of the different error types.

    Coskan,

    I didn't know this is an old thread that somehow got updated by someone else.

    Regarding your question: you're right that the output of the script is not really that useful.

    I have just run on 10.2.0.4 and in general, it seems that the output of USER_UPDATABLE_COLUMNS is incorrect regarding the views of join using the WITH CHECK OPTION.

    For example although the location_id from the TEST_V_2 column appears as non-editable (probably because of the rule that "the columns used in the join expression" cannot be modified in a join view when you use the WITH CHECK OPTION) I can run successfully your insert if statement I choose a location_id less than 2000.

    It seems that summed up the difference if you join more than two tables, you'll always get the error "ORA-01733" when you try to insert in the join with the enabled OPTION CHECK view. For example to add a third table TEST_V_2 which does not change the original view, but simply joined meaning for example COUNTRIES to LOCATIONS, will show the same behavior to throw an ORA-01733, however it works fine when the omission of the WITH CHECK OPTION.

    So overall, I tend to say it is really a limitation of the implementation and it is not actually an ORA-01402 but looks like Oracle is simply trying to tell you: Amendment No. INSERT in this possible view. Updates however seem to work, at least I can find some examples of work.

    There seems to be other restrictions of implementation with the WITH CHECK OPTION in place even when the only membership as two tables, for example when trying to join the COUNTRIES and PLACES but by selecting only in PLACES and by using a filter on the COUNTRY_ID predicate fails with ORA-01733 when this predicate is applied to the COUNTRY. COUNTRY_ID but it works if this predicate is applied to PLACES. COUNTRY_ID.

    I could imagine that Oracle has quietly added some of these restrictions with each patch set due to the angle of the case/adverse reactions encountered. I saw this for other features, too.

    Kind regards
    Randolf

    Oracle related blog stuff:
    http://Oracle-Randolf.blogspot.com/

    SQLTools ++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676 /.
    http://sourceforge.NET/projects/SQLT-pp/

  • get the error ORA-30483 (window functions not allowed herevv)

    Hi all
    Oracle version: 11.2.0.2.0

    with Table_dm AS
    (select 1 month_no, "wk1" week, DM_AMT 120, 300 GRoss_Amt, Week_no 4, Gross_qty 12, 1000 dm_adj_total double
    UNion all
    Select 1 month_no, "wk2" week, DM_AMT 120, 300 GRoss_Amt, Week_no 4, Gross_qty 12, 1000 dm_adj_total double
    Union of all the
    Select 1 month_no, "wk3" week, DM_AMT 120, 300 GRoss_Amt, Week_no 4, Gross_qty 12, 1000 dm_adj_total double
    Union of all the
    Select 1 month_no, "wk4" week, DM_AMT 120, 300 GRoss_Amt, Week_no 4, Gross_qty 12, 1000 dm_adj_total double
    Union of all the
    Select 2 month_no, 'wk5"week, DM_AMT 200, 400 GRoss_Amt, Week_no 5, Gross_qty 20, 1000 dm_adj_total double
    UNion all
    Select month_no 2, "wk6" week, DM_AMT 200, 400 GRoss_Amt, Week_no 5, Gross_qty 20, 1000 dm_adj_total double
    Union of all the
    Select month_no 2, "wk7" week, DM_AMT 200, 400 GRoss_Amt, Week_no 5, Gross_qty 20, 1000 dm_adj_total double
    UNion all
    Select month_no 2, "wk8" week, DM_AMT 200, 400 GRoss_Amt, Week_no 5, Gross_qty 20, 1000 dm_adj_total double
    UNion all
    Select month_no 2, "wk9" week, DM_AMT 200, 400 GRoss_Amt, Week_no 5, Gross_qty 20, 1000 dm_adj_total double
    )
    Select month_NO, GROSS_AMT
    (select
    mONTH_NO
    sum (first_value (GROSS_AMT) more (PARTITION MONTH_NO)) Gross_amt
    of table_dm
    Month_no group

    )

    get the following error

    "ORA-30483: window functions are not allowed here."

    The value of Gross_Amt must be the total of the Group month_no gross_amt (the Gross_Amt would be the first value in each month_no

    the value of Gross_Amt must therefore 700 in this case.

    Please suggest.

    AB

    Thank you very much, SY, is really a useful solution<>

  • Error: [ORA-02289: sequence does not exist.] -

    Hi guys!

    I have a problem when creating a package body.
    The bellows of the sequence is not known, and it is in the PACKAGE BODY:
    SELECT CAMPO_SEQ. CURRVAL IN pNewID FROM DUAL;

    Let me put the script and execution as:

    SQL > CREATE or REPLACE PACKAGE in the CAMPO_PACK
    2
    3 TYPE T_CURSOR IS REF CURSOR;
    4
    5 PROCEDURE InserirCampo (pNewID NUMBER, pCod_Requisicao NUMBER, pCod_Ti
    poCampo NUMBER, pCampo VARCHAR2, pDataInicial TIMESTAMP, TIMESTAMP, p pDataFinal
    Cod_Cidade NUMBER,
    6 pLogradouro VARCHAR2, VARCHAR2, VARCHAR2 pComplemento pNumero, GO pBairro
    RCHAR2, PDCP VARCHAR2, pProtocoloRelacionado VARCHAR2);
    PROCEDURE GetCamposByRequisicaoID (the pCod_Requisicao NUMBER, IO_CURSOR OUT 7
    T_CURSOR);
    8 PROCEDURE DeletarByRequisicaoID (pCod_Requisicao NUMBER);
    9
    10 END CAMPO_PACK;
    11.

    Package created.

    SQL > CREATE or REPLACE PACKAGE BODY CAMPO_PACK as
    2
    3 PROCEDURE InserirCampo (pNewID NUMBER, pCod_Requisicao NUMBER, pCod_Ti
    poCampo NUMBER, pCampo VARCHAR2, pDataInicial TIMESTAMP, TIMESTAMP, p pDataFinal
    Cod_Cidade NUMBER,
    4 pLogradouro VARCHAR2, VARCHAR2, VARCHAR2 pComplemento pNumero, GO pBairro
    RCHAR2, PDCP VARCHAR2, pProtocoloRelacionado VARCHAR2) AS
    5 BEGIN
    6 INSERT INTO Campo (Cod_Requisicao, Cod_TipoCampo, Campo, DataInicial, D
    ataFinal, cod_cidade, number, complement, Bairro, CEP, Logradouro, ProtocoloRel
    acionado)
    7 VALUES
    8 (pCod_Requisicao, pCod_TipoCampo, pCampo, pDataInicial, pDataFinal, BCP
    d_cidade, pLogradouro, pNumero, pComplemento, pBairro, PDCP, pProtocoloRelaciona
    (c);
    9
    * 10 SELECT CAMPO_SEQ. CURRVAL IN pNewID FROM DUAL; *
    END 11 InserirCampo;
    12
    PROCEDURE GetCamposByRequisicaoID (the pCod_Requisicao NUMBER, IO_CURSOR OUT 13
    T_CURSOR)
    14 EAST
    15 V_CURSOR T_CURSOR;
    BEGIN 16
    17 OPEN FOR V_CURSOR
    18 SELECT C, Cam.Cod_TipoCampo, Cam.Cod_Requisicao, Cam.Cod_Campo
    AM. Campo, Cam.DataInicial, Cam.DataFinal, Cid.Cod_Cidade, Cid.NomeCidade, Cid.Co
    d_UF, UF. Description UFDescricao,
    Cam.Logradouro 19, Cam.Numero, Cam.Complemento, Cam.Bairro, Ca
    m.CEP, Cam.ProtocoloRelacionado
    Campo Cam 20
    21 LEFT JOIN Cidade Cid ON Cid.Cod_Cidade = Cam.Cod_Cidade
    A JOIN LEFT 22 UF ON UF. Cod_UF = Cid.Cod_UF
    23 WHERE Cod_Requisicao = pCod_Requisicao;
    24 IO_CURSOR: = V_CURSOR;
    25 END GetCamposByRequisicaoID;
    26
    27 PROCEDURE DeletarByRequisicaoID (pCod_Requisicao NUMBER) HAVE
    BEGIN 28
    29 DELETE FROM campo
    30 WHERE cod_requisicao = pcod_requisicao;
    ENDS 31 DeletarByRequisicaoID;
    32
    END 33 CAMPO_PACK;
    34.

    Warning: Package body created with compilation errors.

    SQL > show err
    Erros para PACKAGE BODY CAMPO_PACK:

    LINE/COL ERROR
    -----------------------------------------------------------------
    10/5 PL/SQL: statement ignored
    10/12 PL/SQL: ORA-02289: sequence does not exist.
    SQL >

    What must I do to solve this problem?
    Thanks for the help!

    Anderson

    If there is no selected line then don't create the sequence by giving this command
    create sequences CAMPO_SEQ begins with 1 increment of 1;

    Arpit sinha
    www.OracleDBA.in

  • ORA-01733: virtual column not allowed here

    UPDATE (
    SELECT callingnumber, calledcallzone, b.callzone callzone, b.ndc
              FROM (SELECT DISTINCT SUBSTR (connectedcallingnumber, 3, 3) callingnumber,
                             calledcallzone,rownum 
                        FROM rating_temp
                       WHERE calltype = 0) a,
                   (SELECT *
                      FROM callzone cc
                     WHERE LENGTH (ndc) = 3) b
             WHERE callingnumber = ndc
             )
       SET calledcallzone = callzone-----VIRTUAL COLUMN NOT ALLOWED HERE
    Published by: user8731258 on November 29, 2010 12:45 AM

    Its simple you used SEPARATE in your first view inline. And so you cannot use columns for UPDATE.

  • Help with error - 934 group function is not allowed here

    Hey there will, I'm having problems with a request and just does not know how to do it without error.

    I'm trying to get all the employee emerging infectious diseases that have less than 2 number max of DID (dependants) in the table.

    It's my current query

    SELECT Employee.LName. ' ' || Employee.Fname as Full_Name, Employee.EID

    The left outer JOIN employee depends on Employee.EID = Dependent.EID

    Having Count (DID)--2 > ((select Max (N) as From (SELECT Employee.EID, Count (DID) As N FROM Employee Inner Join Dependent On Employee.EID = Dependent.EID group by Employee.EID, Count (DID))) N)

    Order of Employee.Lname, Employee.Fname

    Which gives me an error on column 4, no matter what I do. If I remove the Count (DID) in the group by clause (which I tried it earlier), it gives me a is not an error of the function of single group...

    The most frustrating thing is that

    Select Max (N) as From (SELECT Employee.EID, Count (DID) As N FROM Employee Inner Join Dependent On Employee.EID = Dependent.EID group by Employee.EID) N

    Works perfectly, but because it's a mission, I have to do in one step (no substeps/views)

    Any help?

    Thank you very much

    Hello

    ac981e5d-D10A-4520-BF42-23a894d04fb7 wrote:

    Ok. I'm taking your code in a view... I get this.

    and there is an orange underscore and a text of the error that says

    Select incoherent list in group by... change the group by clause of e.fname, e.lname, e.eid, count, max

    Which isn't what either the Oracle database would do.  Everything about orange (or any other color) sounds like it is caused by a front-end that could be interacting with Oracle.  In addition, the Oracle error messages always come with a 3-letter-5 code, as ORA-00933.

    under the selection internal (first medium)

    You have deleted the WITH clause.  The parser can recognize the error when it has reached the first left parenthesis.

    Create view AS A10T2

    (

    SELECT e.lname. ' ' || e.fname AS full_name

    e.eid

    (D.) AS this_group_count

    MAX (COUNT (d.)) ON (AS highest_group_count)

    E employee

    LEFT OUTER JOIN dependent d ON e.eid = d.eid

    GROUP BY e.lname, e.fname, e.eid

    )

    SELECT full_name

    eid

    Of aggregate_results

    WHERE this_group_count > = highest_group_count - 2

    ORDER BY full_name

    You need the WITH to define this clause means "AGGREGATE_RESULTS":

    Create view AS A10T2

    WITH aggregate_results AS

    (

    SELECT e.lname. ' ' || e.fname AS full_name

    ...

    Why do you have an ORDER BY clause in a view?   (It is probably not cause of your errors, just make the inefficient view)

    Command line error: column 5: 23

    Error report-

    SQL error: ORA-00933: SQL not correctly completed command

    00933 00000 - "not correctly completed SQL command.

    * Cause:

    * Action:

    This is another indication that some front is getting involved.  Looks like your front-end reports the exact Oracle error message, "0RA-00933" and then builing it's own error code, "00933. 00000 ", on this basis.  ORA-00933 is a reasonable mistake to wait if you omit the line ' WITH the aggregated results AS.  Once again, until I can actually run your code, I can't test it, and I can't run your code until you post CREATE TABLE and INSERT statements for some examples of data, or change the problem to use commonly available tables, such as those in the scott schema.

    and when I try my code

    CREATE VIEW A10T2 AS

    SELECT Employee.LName. ' ' || Employee.Fname as Full_Name, Employee.EID

    The left outer JOIN employee depends on Employee.EID = Dependent.EID

    Seen (Count (DID)) + 2 > (select Max (N) From (SELECT Employee.EID, Count (DID) As "N" FROM Employee Inner Join Dependent On Employee.EID = Dependent.EID group by Employee.EID))

    Order of Employee.Lname, Employee.Fname

    I get

    Command line error: column 2: 8

    Error report-

    SQL error: ORA-00937: not a function of simple-group

    00937 00000 - 'not a single-group function.

    * Cause:

    * Action:

    Then the orange underscore even under my inner ("select employee. EID, Count (DID) as "N" ") says to change the Group of Employee.eid, Count (DID)

    I just don't understand why he tells me to group them by Count (DID)?

    Isn't that what you did in your original post, and I have explained in answer #2?  If you continue to repeat the same mistake, you can expect continue to get the same error.  Given that you have a code, you know causes an error, do you think really that what makes a vision will cause the error to disappear?

    The inner query works fine on its own...

    Right; It's the outer query where you are missing the GROUP BY clause.

  • Database trigger - PL/SQL: ORA-00984: column not allowed here

    I am trying to create a trigger that will update a table of audit used when a row is changed. Using a sequence number to assign an identifier unique to each line as it is created. Need to capture the user ID, date modified and action (update), the image of the front line.
    CREATE SEQUENCE emp_audit_seq START WITH 10;                
    Create table emp (
       empno       NUMBER(4)      Primary Key,
       ename       VARCHAR2(10),
       job            VARCHAR2(9),
       mgr           NUMBER(4),
       hiredate     DATE,
       sal             NUMBER(7,2),
       comm        NUMBER(7,2),
       deptno       NUMBER(2));
    CREATE TABLE emp_audit   (
         audit_uid          NUMBER(15)      Primary Key,
         change_date          DATE,
         change_user          VARCHAR2(30),
         action                  CHAR(1),
         empno                  NUMBER(4),
         ename                  VARCHAR2(10),          
         job               VARCHAR2(9),
         mgr               NUMBER(4),
         hiredate          DATE,
         sal               NUMBER(7,2),
         comm                  NUMBER(7,2),
         deptno                  NUMBER(2));
    CREATE OR REPLACE TRIGGER trig_emp_audit
      BEFORE UPDATE ON emp
      FOR EACH ROW
    BEGIN
      INSERT INTO emp_audit
        VALUES(emp_audit_seq.nextval, change_date, change_user, action, :old.empno, :old.ename, :old.job, :old.mgr, :old.hiredate, :old.sal, :old.comm, deptno);
    END;
    /
    
    Warning: Trigger created with compilation errors.
    
    SQL> show errors
    Errors for TRIGGER TRIG_EMP_AUDIT:
    
    LINE/COL ERROR
    -------- -----------------------------------------------
    2/3      PL/SQL: SQL Statement ignored
    3/149    PL/SQL: ORA-00984: column not allowed here
    Can someone help to help me find what I'm doing wrong with the trigger?

    Published by: LostNoob on August 25, 2012 14:24

    First of all, when you write an INSERT statement, it is always good for the columns that you insert in the list. Which makes the code easier to follow - you do not have separately pull toward the top of the table definition to know what order of columns is inserted. And it makes the code easier to manage because the declaration become invalid if you add a new column to the table in the future.

    Second, CHANGE_DATE, CHANGE_USER and ACTION are not (probably) functions and are not local variables so it is not supposed to use them in an INSERT statement. You need to write code or to take advantage of the existing functions to fill in these columns. I suppose, for example, that you want to use SYSDATE to fill the CHANGE_DATE and the USER to fill the column CHANGE_USER. My guess is that ACTION must always be a 'U' for UPDATE.

    Thirdly, it seems that you left the: old man on the DEPTNO column.

    Put them all together, you would have something like

    CREATE OR REPLACE TRIGGER trig_emp_audit
      BEFORE UPDATE ON emp
      FOR EACH ROW
    BEGIN
      INSERT INTO emp_audit(
          audit_uid,
          change_date,
          change_user,
          action,
          enpno,
          ename,
          job,
          mgr,
          hiredate,
          sal,
          comm,
          deptno )
        VALUES(
          emp_audit_seq.nextval,
          sysdate,
          user,
          'U',
         :old.empno,
         :old.ename,
         :old.job,
         :old.mgr,
         :old.hiredate,
         :old.sal,
         :old.comm,
         :old.deptno);
    END;
    / 
    

    Justin

  • ORA-00976: virtual specified or operator not allowed here - (11g)

    This ora error occurs on one of my test environment.

    ORA-00976: virtual specified or operator not allowed here

    This happens in one of the plsql pkg, which has no compilation errors. and works perfectly well in other environments.

    The only difference I noticed is what error in DB, which is 11g - 11.2.0.3
    and other environments that are in good shape is 10g - 10.2.0.5

    Overall of the function where the error is, there is one thing which I suspect (but not sure)
    It is CONNECT BY LEVEL, is used in a query. This could be a problem in 11g?
    If not, any help / troubleshooting tips that will be greatly appreciated. !

    -Thank you,

    I can reproduce your error on my 11.2.0.3 instance. Looks like the bug number 13496250 introduced in the 11.2.0.3.

    John

  • PL/SQL: ORA-00984: column not allowed here

    Sorry, it's probably easy and I forgot something simple, but it's driving me crazy :-)
    VARIABLE g_fk_deduction      VARCHAR2(30)
    VARIABLE g_fk_empno          NUMBER
    VARIABLE g_before_or_after_flag     CHAR(1)
    VARIABLE g_deduction_amount     NUMBER
    
    BEGIN
      :g_fk_deduction           := '401K';
      :g_fk_empno               := 7369;
      :g_before_or_after_flag     := 'B';
      :g_deduction_amount          := 150.00;
    END;
    /
    BEGIN
      INSERT INTO emp_deductions      (fk_deduction, fk_empno, before_or_after_flag, deduction_amount)
       VALUES               (g_fk_deduction, g_fk_empno, g_before_or_after_flag, g_deduction_amount);
      COMMIT;
    END;
    /
    Error: PL/SQL: ORA-00984: column not allowed here on g_deduction_amount
    in the value clause.
    Any help would be appreciated.

    Table is below:
    CREATE TABLE emp_deductions     (
          fk_deduction            VARCHAR2(30),
          fk_empno                  NUMBER(4),
          before_or_after_flag         CHAR(1),
          deduction_amount            NUMBER(6,2));
    Published by: LostNoob on August 23, 2012 19:06

    rp0428 wrote:
    >
    : g_fk_deduction: = "401k".
    : g_fk_empno: = 7369;
    : g_before_or_after_flag: = 'B ';.
    : g_deduction_amount: = 150.00;
    >
    Why did you put a colon here? Get rid of them.

    They are necessary, since they are declared SQL * more variable.

    The problem for the OP, is that in the clause values in the insert the colon are missing.

    Published by: Mark Williams on August 23, 2012 22:31

    Here is your example requested:

    SQL> create table test (c number);
    
    Table created.
    
    SQL> variable v_c number
    SQL> begin
      2    :v_c := 46;
      3  end;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SQL> begin
      2    insert into test values (:v_c);
      3  end;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from test;
    
             C
    ----------
            46
    
    1 row selected.
    
    SQL>
    
  • ORA-00984: column not allowed here

    Hi all

    Kindly someone please shed some light on this called error "ORA-00984: column not allowed here?

    I created a table:

    CREATE TABLE JB (ENAME VARCHAR (20));

    Table created.

    Now, if I INSERT:

    INSERT INTO VALUES JB (sintes);

    ORA-00984: column not allowed here

    Why this error, if I insert a number instead of "Sinti", implementation is also possible. No character is not allowed.

    What is the column name in this area, its totally strange to me.

    Please someone help me.

    Thank you and best regards,
    SINTES

    Hello
    Use quotes around Zack:

    INSERT INTO JB VALUES ('Sathik');
    
  • ORA-00984: column not allowed here, when you try to use a default UDF

    I am wanting to create a table that has a default value of a user-defined function, and because this default is intended to be used in a few different places so I would use a function rather than in the table definition.

    This is my current code that works very well:
    CREATE TABLE DEPT_HIST
    (
      DEPTNO      NUMBER(2) not null,
      DNAME       VARCHAR2(14),
      LOC         VARCHAR2(13),
      SQL_ACTV_C  CHAR(1) not null,
      EFFT_STRT_S TIMESTAMP(6) default SYSTIMESTAMP not null,
      EFFT_END_S  TIMESTAMP(6) default TO_TIMESTAMP('9999/12/30 00:00:00.000000', 'YYYY/MM/DD:HH24:MI:SS.FF6') not null,
      DELT_F      CHAR(1) default 'N' not null
    );
    but I would get something similar to this work:
    CREATE OR REPLACE FUNCTION EOT
       RETURN timestamp
    IS
       Result   timestamp;
    BEGIN
       RETURN (TO_TIMESTAMP ('9999/12/30 00:00:00.000000',
                             'YYYY/MM/DD:HH24:MI:SS.FF6'));
    END EOT;
    /
    
    select eot from dual;
    
    EOT
    ---------------------------------------------------------------------------
    30/DEC/99 12:00:00.000000000 AM
    
    CREATE TABLE DEPT_HIST
    (
      DEPTNO      NUMBER(2) not null,
      DNAME       VARCHAR2(14),
      LOC         VARCHAR2(13),
      SQL_ACTV_C  CHAR(1) not null,
      EFFT_STRT_S TIMESTAMP(6) default SYSTIMESTAMP not null,
      EFFT_END_S  TIMESTAMP(6) default EOT not null,
      DELT_F      CHAR(1) default 'N' not null
    );
    but I get an error of:
      EFFT_END_S  TIMESTAMP(6) default EOT not null,
                                       *
    ERROR at line 8:
    ORA-00984: column not allowed here
    Any ideas? I guess I could use a trigger but not exactly what I'm after.

    Hello

    Sorry; No function defined by the user in the DEFAULT clause.
    From SQL, under "CREATE TABLE Statement" language manual
    http://download.Oracle.com/docs/CD/B28359_01/server.111/b28286/statements_7002.htm#sthref7119

    Restriction on default column values


    A DEFAULT expression cannot contain references to the functions PL/SQL or other columns, the nickname CURRVAL, NEXTVAL, LEVEL, PRIOR and ROWNUM, or date constants that are not completely specified.

    I wouldn't use a trip just for that. If you need a trigger for other reasons, then maybe you can include the definition of this column in the trigger, too, but, in general, avoid triggers when there is an alternative.

  • PL/SQL: ORA-00934: Group feature is not allowed here

    Hello

    I write a PL/SQL procedure. The structure is like:

    SET SERVEROUTPUT ON;
    CREATE or REPLACE procedure abc

    IS
    v_total_ip_rec number (14);
    v_total_op_rec number (14);
    v_total_rec number (14);


    BEGIN
    SELECT SUM (CASE
    WHEN < condition 1 >
    THEN 1
    0 OTHERWISE
    END
    ) in v_total_ip_rec.
    SUM (CASE
    WHEN < condition 2 >
    THEN 1
    0 OTHERWISE
    END
    ) in v_total_op_rec.
    SUM (1) in v_total_rec
    OF A, B
    WHERE A.Col1 = B.Col1;

    EXCEPTION
    WHILE OTHERS THEN
    raise_application_error (-20001,' an error has occurred - ' |) SQLCODE |' - ERROR - ' | SQLERRM);
    END;


    When I run this procedure it gives me following error:
    "PL/SQL: ORA-00934: Group feature is not allowed here."

    Someone has an idea?

    Any help would be appreciated.

    Thank you.

    Should I have any special role?

    Have you checked if synonyms exist for tables?
    Please check in this order:

    #1-synonymes appropriate
    #2-appropriate privileges
    #3-appropriate roles

  • Procedure returns ORA-00984: column not allowed here

    Get an error returned by my procedure and can't understand it. Someone has an idea?
    Thanks in advance,
    Carpet

    14/2 PL/SQL: statement ignored
    15/80 PL/SQL: ORA-00984: column not allowed here



    CREATE OR REPLACE PROCEDURE basket_add_sp
    (p_idproduct in NUMBER,
    p_price in NUMBERS
    p_quantity in NUMBERS
    p_idbasket in NUMBERS
    p_option1 in NUMBERS
    p_option in NUMBERS)
    IS
    lv_seq_num bb_basketitem.idbasketitem%TYPE;
    BEGIN
    SELECT bb_idbasketitem_seq. NEXTVAL
    IN lv_seq_num
    FROM DUAL;
    INSERT INTO bb_basketitem (idbasketitem, idproduct, price, quantity, idbasket, option 1, option 2)
    VALUES (lv_seq_num, p_idproduct, p_price, p_quantity, p_idbasket, p_option1, p_option2);
    COMMIT;
    END;
    /

    What is p_option2 in the INSERT statement? In the settings, you have only p_option1 and p_option.

    I agree with Walter, you can save an e/s by losing the select double.

  • ORA-00984 column not allowed here. Help, please.

    Hey, I made a table;


    CREATE TABLE borrower)
    BorId VARCHAR2 (5) NOT NULL,
    BorName VARCHAR2 (20).
    BorMaxBooks NUMBER (10),
    KEY elementary SCHOOL (BorId));

    I'm trying to enter values in this table;

    INSERT the borrower VALUES)
    001, 'Jack Jones', 5);

    And I get an error; ORA-00984 column not allowed here. Please can someone help? I tried to change the BorName VARCHAR2 (20) BorName char (20), and all I can think about.

    It should work by specifying your columns like this.

    INSERT INTO Borrower (BorId, BorName, BorMaxBooks)
    VALUES (001, 'Jack Jones', 5);
    

    Sitjà.

Maybe you are looking for