Column Not Allowed Here? Why?
CREATE TABLE course_location(
venue_id number(6),
street_address varchar2(30),
postal_code varchar2(8),
county varchar2(16),
PRIMARY KEY (venue_id)
INSERT INTO course_location (venue_id, street_address, postal_code, county)
VALUES (162, '9 Illing Way', 'PO13 3HA', Hampshire);
INSERT INTO course_location (venue_id, street_address, postal_code, county)
VALUES (287, '18 Hating Place', 'SO13 4DA', Hampshire);
INSERT INTO course_location (venue_id, street_address, postal_code, county)
VALUES (91, '24 Lauren Way', 'SO17 6TA', Hampshire);
INSERT INTO course_location (venue_id, street_address, postal_code, county)
VALUES (61, '9 Wotton Way', 'SL6 3ED', Berkshire);
INSERT INTO course_location (venue_id, street_address, postal_code, county)
VALUES (19, '10 Soul Lane', 'GU21 7TA', Berkshire);
'Hampshire' - this is a string literal
Hampshire - this is an identifier, probably a column name (of course there is no column called HAMPSHIRE in your table, but even if there was one it cannot be referenced here).
Do you see the difference?
You are missing ' '.
Yes, I agree - the error message could be more human-friendly :)
Similar Messages
-
ORA-01733- virtual column not allowed here - Insert using inline view
Does anyone know why I am getting 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
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
---no error without WITH CHECK option
SQL> INSERT INTO
2 (SELECT
3 location_id,
4 city,
5 l.country_id
6 FROM countries c, locations l,regions r
7 where l.country_id = c.country_id
8 and r.region_id=c.region_id
9 and r.region_name = 'Asia')
10 VALUES (5500, 'Wansdworth Common', 'UK');
1 row created.
SQL> rollback;
Rollback complete.
-----error with WITH CHECK OPTION
SQL> INSERT INTO
2 (SELECT
3 location_id,
4 city,
5 l.country_id
6 FROM countries c, locations l,regions r
7 where l.country_id = c.country_id
8 and r.region_id=c.region_id
9 and r.region_name = 'Asia' WITH CHECK OPTION)
10 VALUES (5500, 'Wansdworth Common', 'UK');
INSERT INTO
ERROR at line 1:
ORA-01733: virtual column not allowed here
I was expecting
ORA-01402: view WITH CHECK OPTION where-clause violation
for the second one. Is there anything I am missing here ?Randolf
Thank you very much for the update to this old question
After reading the link I think I should ignore this error and accept it as ORA-01402
The information you asked me to check did not lead me an understanding of different error types.
SQL> ----view for ORA-01733
SQL> create view test_v_1
2 as
3 SELECT
4 location_id,
5 city,
6 l.country_id
7 FROM countries c, locations l,regions r
8 where l.country_id = c.country_id
9 and r.region_id=c.region_id
10 and r.region_name = 'Asia' WITH CHECK OPTION;
View created.
SQL>
SQL>
SQL>
SQL> select * from user_updatable_columns where table_name='TEST_V_1';
OWNER TABLE_NAME COLUMN_NAME UPD INS DEL
HR TEST_V_1 CITY YES YES YES
HR TEST_V_1 COUNTRY_ID NO NO NO
HR TEST_V_1 LOCATION_ID YES YES YES
SQL>
SQL> ----view for ORA-01402
SQL>
SQL> create view test_v_2
2 as
3 SELECT
4 d.department_id,
5 d.department_name,
6 d.location_id
7 FROM hr.departments d,hr.locations l
8 WHERE l.location_id=d.location_id
9 and d.location_id < 2000
10 WITH CHECK OPTION;
View created.
SQL>
SQL> select * from user_updatable_columns where table_name='TEST_V_2';
OWNER TABLE_NAME COLUMN_NAME UPD INS DEL
HR TEST_V_2 DEPARTMENT_ID YES YES YES
HR TEST_V_2 DEPARTMENT_NAME YES YES YES
HR TEST_V_2 LOCATION_ID NO NO NO
SQL>
SQL>
SQL> ----INSERT STILL FAILING WITH DIFFERENT ERROR DESPITE THE SAME UPDATABLE COLUMN STRUCTURE
SQL> insert into test_v_1 values (5500, 'Wansdworth Common', 'UK');
insert into test_v_1 values (5500, 'Wansdworth Common', 'UK')
ERROR at line 1:
ORA-01733: virtual column not allowed here
SQL> insert into test_v_2 values (9999, 'Entertainment', 2500);
insert into test_v_2 values (9999, 'Entertainment', 2500)
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
SQL>A. Coskan GUNDOGAR
Oracle DBA
http://coskan.wordpress.com
“A man's errors are his portals of discovery.”
James Joyce -
PL/SQL: ORA-00984: column not allowed here
I am Trying to compile this procedure, but i get error, could please anybody help me out.
Thanks.
SQL> create or replace procedure FOF_sport_setup(
2 v_model_cd in varchar2, -- model_cd used in many place
3 v_portfolio_name in varchar2, -- portfolio name
4 v_src_acct_nbr in varchar2, -- source account number for port
5 v_src_fund_nbr in varchar2, -- source fund number
6 v_fmr_fund_nbr in varchar2, -- fidelity fund number
7 v_src_cd in varchar2, -- source code
8 v_last_mod_id in varchar2 -- your corp id
9 )
10 as
11 v_new_portf_id number(12);
12
13 begin
14
15 select max(portf_id) into v_new_portf_id from portfolios;
16
17 insert into portfolios
18 (portf_id,
19 portf_cd,
20 portf_name,
21 portf_typ_cd,
22 inception_date,
23 sub_product_cd,
24 product_cd,
25 product_line_cd,
26 bus_line_cd,
27 dly_perf_restr_ind,
28 portf_mgr_id,
29 seed_acct_nbr,
30 use_epas_ind,
31 epas_drop_perf_ind,
32 src_acct_nbr,
33 src_fund_nbr,
34 fmr_fund_nbr,
35 src_cd,
36 last_mod_id,
37 last_mod_dt)
38 values
39 (new_portf_id,
40 v_model_cd,
41 v_portfolio_name,
42 "RETAIL",
43 v_inception_date,
44 "FREE",
45 "FREE",
46 "FREE",
47 "PAS",
48 "Yes",
49 3,
50 "31635C101",
51 "N",
52 "Y",
53 v_src_acct_nbr,
54 v_src_fund_nbr,
55 v_fmr_fund_nbr,
56 v_src_cd,
57 v_last_mod_id,
58 sysdate);
59
60 end;
61 /
Warning: Procedure created with compilation errors.
SQL> show errors procedure FOF_sport_setup
Errors for PROCEDURE FOF_SPORT_SETUP:
LINE/COL ERROR
17/2 PL/SQL: SQL Statement ignored
51/3 PL/SQL: ORA-00984: column not allowed here
SQL>create or replace procedure FOF_sport_setup(
v_model_cd in varchar2, -- model_cd used in many places for portf_id,
v_portfolio_name in varchar2, -- portfolio name
v_inception_date in varchar2,
v_src_acct_nbr in varchar2, -- source account number for portfolio table in sport db
v_src_fund_nbr in varchar2, -- source fund number
v_fmr_fund_nbr in varchar2, -- fidelity fund number
v_src_cd in varchar2, -- source code
v_last_mod_id in varchar2 -- your corp id
as
v_new_portf_id number(12);
begin
select max(portf_id) into v_new_portf_id from portfolios;
insert into portfolios
(portf_id,
portf_cd,
portf_name,
portf_typ_cd,
inception_date,
sub_product_cd,
product_cd,
product_line_cd,
bus_line_cd,
dly_perf_restr_ind,
portf_mgr_id,
seed_acct_nbr,
use_epas_ind,
epas_drop_perf_ind,
src_acct_nbr,
src_fund_nbr,
fmr_fund_nbr,
src_cd,
last_mod_id,
last_mod_dt)
values
(v_new_portf_id,
v_model_cd,
v_portfolio_name,
'RETAIL',
to_date('v_inception_date'),
'FREE',
'FREE',
'FREE',
'PAS',
'Yes',
3,
'31635C101',
'N',
'Y',
v_src_acct_nbr,
v_src_fund_nbr,
v_fmr_fund_nbr,
v_src_cd,
v_last_mod_id,
sysdate);
end;
=====================
The procedure got created without any errors, when i am trying to execute the procedure i am getting errors.
this is the parameters which i am passing:
exec FOF_sport_setup('01213', 'PAS International Fund of Funds', '2/15/2006', '01213', 'IFOFB', 'IFOFB', 'FPCMS', 'a382077')
SQL> exec FOF_sport_setup('01213', 'PAS International Fund of Funds', '2/15/2006', '01213', 'IFOFB',
'IFOFB', 'FPCMS', 'a382077')
BEGIN FOF_sport_setup('01213', 'PAS International Fund of Funds', '2/15/2006', '01213', 'IFOFB', 'IF
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected
ORA-06512: at "SPORT.FOF_SPORT_SETUP", line 15
ORA-06512: at line 1
===============
the description for the table is below
===========
SQL> desc portfolios
Name Null? Type
PORTF_ID NOT NULL NUMBER(25)
PORTF_CD VARCHAR2(10)
PORTF_NAME VARCHAR2(60)
STRATEGY_CD VARCHAR2(10)
CO_STOCK_LEV_CD VARCHAR2(10)
EFF_DATE DATE
PORTF_WEB_NAME VARCHAR2(60)
PORTF_TYP_CD VARCHAR2(10)
INCEPTION_DATE DATE
CLOSE_DATE DATE
SUB_PRODUCT_CD VARCHAR2(10)
PRODUCT_CD VARCHAR2(10)
PRODUCT_LINE_CD VARCHAR2(10)
BUS_LINE_CD VARCHAR2(10)
BUS_GRP_CD VARCHAR2(10)
PLAN_CD VARCHAR2(10)
ADVISOR_CD VARCHAR2(10)
RISK_LEVEL_CD VARCHAR2(10)
DLY_PERF_RESTR_IND VARCHAR2(3)
SUB_PORTF_IND CHAR(1)
PORTF_MGR_ID NUMBER(25)
SEED_ACCT_NBR VARCHAR2(9)
OBJECTIVE VARCHAR2(255)
PORTF_COMPOSITION_DESC VARCHAR2(50)
LGL_GRP VARCHAR2(30)
USE_EPAS_IND VARCHAR2(3)
EPAS_MODEL_NAME VARCHAR2(50)
EPAS_DROP_PERF_IND VARCHAR2(3)
SRC_ACCT_NBR VARCHAR2(15)
SRC_FUND_NBR VARCHAR2(6)
FMR_FUND_NBR VARCHAR2(6)
NET_ASSETS NUMBER(25,8)
SEED_MKT_VAL NUMBER(25,10)
ACCT_MKT_VAL NUMBER(25,10)
TOTAL_ASSETS NUMBER(25,10)
NET_OTHER_ASSETS NUMBER(25,8)
ACCRUED_INCOME NUMBER(25,10)
ACCRUED_INTEREST NUMBER
LIABILITIES NUMBER(25,10)
SHARES_OUTSTANDING NUMBER(25,10)
PRINCIPAL_CASH NUMBER(25,10)
INCOME_CASH NUMBER(25,10)
INVESTIBLE_CASH NUMBER(25,10)
SHIP_DATE DATE
REBALANCE_IND CHAR(1)
OUTBOUND_IND VARCHAR2(5)
LGL_MSG_CD CHAR(1)
LAST_SETTLE_DATE DATE
LAST_TRD_DATE DATE
LAST_ALLOC_DATE DATE
STATUS_CD CHAR(1)
SRC_CD NOT NULL VARCHAR2(5)
LAST_MOD_ID NOT NULL VARCHAR2(10)
LAST_MOD_DT NOT NULL DATE
PORTF_MGD_CD VARCHAR2(10)
========== -
Virtual Column not allowed here Error
Hi All,
I am facing "Virtual Column not allowed here" Error when running a simple select statement. I have identified that if I am removing a primary key constraint and an index on top of month table which is used in the SQL solving this issue. But want to know the exact reason of this error. FYI I am having two indexes on Month_end_date_key (which is also a primary key) and Month_end_date. Could you please let me know the reason for this.
FYI I am not doing any insert,update deletion operations. I am using only the tables in the SQL not using any views.
Regards,
Radhakrishna924486 wrote:
Hi All,
I am facing "Virtual Column not allowed here" Error when running a simple select statement. I have identified that if I am removing a primary key constraint and an index on top of month table which is used in the SQL solving this issue. But want to know the exact reason of this error. FYI I am having two indexes on Month_end_date_key (which is also a primary key) and Month_end_date. Could you please let me know the reason for this.
FYI I am not doing any insert,update deletion operations. I am using only the tables in the SQL not using any views.
Regards,
RadhakrishnaAre you sure none of those is a view?
Cause: An attempt was made to use an INSERT, UPDATE, or DELETE statement on an expression in a view.
Action: INSERT, UPDATE, or DELETE data in the base tables, instead of the view. -
Execute immediate column not allowed here error
Hi,
I have the following procedure
CREATE OR REPLACE PROCEDURE SWF_ICD
IS
SEQSWF NUMBER;
req VARCHAR2(1000):='';
BEGIN
DBMS_OUTPUT.ENABLE( 1000000 ) ;
DBMS_OUTPUT.PUT_LINE('DEBUT');
FOR CUR1 IN (SELECT * FROM ICD WHERE ETAICD=5)
LOOP
SELECT SEQ_SWF.NEXTVAL INTO SEQSWF FROM DUAL;
FOR CUR2 IN (SELECT CODCSWSSW,CODSSW,RUBSSW FROM SSW,OSW
WHERE INSOSW='ICD' AND CODCSWSSW=CODCSWOSW)
LOOP
req:= 'INSERT INTO SWF (SEQESWSWF,CODCSWSWF,CODSSWSWF,VALSWF) '
|| 'VALUES (CUR2.SEQSWF,CUR2.CODCSWSSW,CUR2.CODSSW,CUR1.' || CUR2.RUBSSW || ')';
DBMS_OUTPUT.PUT_LINE('req : ' || req);
EXECUTE IMMEDIATE req;
END LOOP;
END LOOP;
DBMS_OUTPUT.PUT_LINE('FIN');
END;
The procedure is created but when running i have the following error column not allowed here.
pls advise.Hi
Try EXECUTE IMMEDIATE sql USING ... syntax.
EXECUTE IMMEDIATE dynamic_string
[INTO {define_variable[, define_variable]... | record}]
[USING [IN | OUT | IN OUT] bind_argument
[, [IN | OUT | IN OUT] bind_argument]...]
[{RETURNING | RETURN} INTO bind_argument[, bind_argument]...];
Please see the link for more info.
http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/11_dynam.htm#13131
Thanks -
Getting the error column not allowed here in jdbc
i have got an error
when using jdbc.
i have inserted the data from taking java textfields.
The error is:column not allowed here.
how to rectify this?
iam eagerly waiting for ur reply.Hi,
This is the forum for the SQL Developer Data Modeler product.
I suggest you try asking your question on the SQL and PL/SQL Forum: PL/SQL
David -
ORA-00984 Column not allowed here. Please help.
Hey, I have made a table;
CREATE TABLE Borrower (
BorId VARCHAR2(5) NOT NULL,
BorName VARCHAR2(20),
BorMaxBooks NUMBER(10),
PRIMARY KEY (BorId));
I am trying to enter values into this table;
INSERT INTO Borrower VALUES (
001, "Jack Jones", 5);
And I get an error; ORA-00984 Column not allowed here. Please can anyone help?? I have tried changing BorName VARCHAR2(20) to BorName CHAR(20) and everything I can think of.Hi sorry to bother you again but is it the same method as in MySQL to enter multiple data at once?
I am trying to save time by entering all the contents of a table all at once,
Would it be;
INSERT INTO Borrower (BorId, BorName, BorMaxBooks) VALUES (
(001, 'Bob', 4),
(002, 'James', 5),
(003, 'Dave', 6);
Thanks. -
Help - error : ORA-00984: Column not allowed here
Hi,
I'm writing a simple Java program to update values into Oracle tables. But getting error - 'ORA-00984: Column not allowed here' in the line - sql2.executeUpdate(acctTabSql);
There is no column name used in 'insert statement - and referred suggestion here to resolve the error, but couldn't. Please write me how to resolve it. ?
Here is the code snippet below.
Thanks, Vasu
T_ACCT
ACCT_ID (PK) GEN INTEGER
ALS_NBR:STRING
STATUS_CD:STRING
NOTE_DT:DATE
int intVal1 = 0;
int intVal2 = 0;
Statement sql1 = oraConnection.createStatement();
ResultSet rs = sql1.executeQuery("SELECT ACCT_ID_SEQ.NEXTVAL, APPL_ID_SEQ.NEXTVAL FROM DUAL");
while(rs.next()){
intVal1 = rs.getInt(1);
intVal2 = rs.getInt(2);
System.out.println("ACCT_ID :" + intVal1);
System.out.println("APPL_ID :" + intVal2);
sql1.close();
Statement sql2 = oraConnection.createStatement();
String acctTabSql = "INSERT INTO VPDBO.T_ACCT (ACCT_ID, ALS_NBR, NOTE_DT, HELMS_NBR, SL_REF_NBR, BK_MSG_RECEIVED_DT) " +
"VALUES (intVal1,'' ,'' ,'' ,'' ,'' )";
System.out.println(acctTabSql);
-/Error/- sql2.executeUpdate(acctTabSql);
sql2.close();
Statement sql3 = oraConnection.createStatement();
String applTabSql = "INSERT INTO T_APPL (APPL_ID, ACAPS_ID, STATUS_CD, ACAPS_PROD_CD, ACCT_ID, DCAPP_MSG_RECEIVED_DT) " +
"VALUES (intVal1, valappIdValue, 'EN', '', intVal2, '08/26/09')";
System.out.println(applTabSql);
sql3.executeUpdate(applTabSql);
sql3.close();
oraConnection.commit();Hi,
make sure final statement is like :
INSERT INTO VPDBO.T_ACCT (ACCT_ID, ALS_NBR, NOTE_DT, HELMS_NBR, SL_REF_NBR, BK_MSG_RECEIVED_DT)
VALUES(intVal1,NULL,NULL,NULL,NULL,NULL)instead of
String acctTabSql = "INSERT INTO VPDBO.T_ACCT (ACCT_ID, ALS_NBR, NOTE_DT, HELMS_NBR, SL_REF_NBR, BK_MSG_RECEIVED_DT) " +
"VALUES (intVal1,'' ,'' ,'' ,'' ,'' )";Cheers,
Avin ash -
Database trigger - PL/SQL: ORA-00984: column not allowed here
I am trying to create a trigger that will update an employee audit table when a row is changed. Using a sequence number to assign a unique identifier to each row as it is created. Need to capture the user ID, date of the change, and the action (update), plus the before image of the row.
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 hereCan anyone assist in helping me find what I am doing wrong with the trigger?
Edited by: LostNoob on Aug 25, 2012 2:24 PMFirst, when you write an INSERT statement, it's always good to list the columns that you're inserting into. That makes the code easier to follow-- you don't have to separately pull up the table definition to know what order columns are inserted. And it makes the code more maintainable since the statement won't become invalid if you add a new column to the table in the future.
Second, CHANGE_DATE, CHANGE_USER, and ACTION are not (presumably) functions and they are not local variables so it doesn't make sense to use them in an INSERT statement. You would need to write code or leverage existing functions to populate those columns. I'm guessing, for example, that you want to use SYSDATE to populate the CHANGE_DATE and USER to populate the CHANGE_USER column. My guess is that ACTION should always be a 'U' for UPDATE.
Third, it appears that you left off the :old on the DEPTNO column.
Putting it all together, you'd 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-00984: Column not allowed here.
Hi there, I've got a little problem with the ORA-00984 error. I just begun PL/SQL, so maybe you can support me with this.
I want to write a Trigger that fires every time a row in a table is changed or deleted. Trigger should write the following into a seperate table:
[mumblejumble ...]
THEN
INSERT INTO "PROJECT"."T_HISTORY" (subtopic_id, change_date, old_schedule_date, old_description, changes_id) VALUES (
var_subtopic_id,
TO_DATE(sysdate,'DD.MM.YY'),
var_old_schedule_date,
var_old_decription,
'1');
troublemaker is this line:
TO_DATE(sysdate,'DD.MM.YY'),
Gives ORA-00984. I tried a single sysdate as well, same problem.
Somebody got a clue or workaround? I can't figure out how to insert the sysdate another way.
Regards,
ThomasHere you go, this is the current version:
CREATE OR REPLACE
TRIGGER TRIGGER_TEST_HISTORY BEFORE UPDATE OR DELETE ON T_SUBTOPICS
DECLARE
var_subtopic_id NUMBER(6);
var_old_schedule_date DATE;
var_old_description VARCHAR2(1000);
BEGIN
/* Trigger soll Datensätze nach t_history kopieren, zusammen mit einer Beschreibung der Änderung!
/* Datensätze aus Tabelle holen */
SELECT subtopic_id, schedule_date, description INTO var_subtopic_id, var_old_schedule_date, var_old_description FROM t_subtopics;
/* Abfragen, wie geändert wurde */
IF UPDATING
THEN
INSERT INTO "PROJECT"."T_HISTORY" (subtopic_id, change_date, old_schedule_date, old_description, changes_id) VALUES (
var_subtopic_id,
sysdate,
var_old_schedule_date,
var_old_decription,
'1');
/* Oder gelöscht? */
ELSIF DELETING
THEN
INSERT INTO "PROJECT"."T_HISTORY" (subtopic_id, change_date, old_schedule_date, old_description, changes_id) VALUES (
var_subtopic_id,
sysdate,
var_old_schedule_date,
var_old_decription,
'2');
END IF;
END;
Pretty primitive, but that was the first way that came into my mind.
Edited spelling mistake
Message was edited by:
Thomas Anders -
PL/SQL: ORA-00984: column not allowed here (emp.no)
I want to insert the value of a portlet form field into a table.
Any help ?
procedure afterValidation
p_block_name in varchar2,
p_object_name in varchar2,
p_instance in integer,
p_event_type in varchar2,
p_user_args in varchar2,
p_session in out nocopy PORTAL.wwa_api_module_session
is
begin
INSERT INTO PARAMS(F_SESSION,FN_1) VALUES(USERENV('SESSIONID'),EMP.NO );
end;I want to insert the value of a portlet form field into a table.
Any help ?
procedure afterValidation
p_block_name in varchar2,
p_object_name in varchar2,
p_instance in integer,
p_event_type in varchar2,
p_user_args in varchar2,
p_session in out nocopy PORTAL.wwa_api_module_session
is
begin
INSERT INTO PARAMS(F_SESSION,FN_1) VALUES(USERENV('SESSIONID'),EMP.NO );
end; -
HI,
I have a function and i want t odo like this:
create or replace function func( dbl varchar2,tr varchar2)
return number
is
d2 timestamp :=sysdate;
trc varchar2(4):
dblnk varchar2(255);
begin
trc:=tr;
dbllnk:=dbl;
execute immediate 'insert into t@'||dblnk||' values (trc,d2)';----------in this statement
end;
i am getting above error:
ThanksHashmi wrote:
execute immediate 'insert into t@'||dblnk||' values (trc,d2)';----------in this statementYou should use bind variables there:
execute immediate 'insert into t@'||dblnk||' values (:b1,:b2)'
using trc, d2; -
When Closing the window giving error " Virtual Column not allowed"
Hi All,
In my main block, i have a button, on clicking which will open a new window(block) with a free text field to enter.
I have a Save button in a new window which will save entered text fiedl and refresh the main block to see the value entered in a new block.
But suppose, if entered something in text field and without saving if i close the window and try to exit from the form
It is asking me to save the form or not and if i press Yes
Then it gives me below error
ORA-01733: virtual column not allowed here
FRM-40508: ORACLE error: unable to INSERT record.
If i see from Display database error' It is trying to insert the record into the view On which my new block has based( i know it is not possible).
Any suggestion on this please?
Thanks,
pavanPavan,
How are you populating your block? It sounds like you are populating the block manually (eg; Looping through a cursor and assigning values to each row of your block). If this is what you are doing, then YES you will get these kinds of errors. Ideally, you should base your data block on your data (either directly on the base table or view of if you are using a query, then a FROM Clause based block).
I'm guessing here, so would you mind posting a description of your data block(s) is/are set up?
Craig... -
Getting an error - group function not allowed here
Below is the merge statement...
getting an error - group function not allowed here
WHY????
merge into summary
using
(select
a.user_id,
min(a.start_time_utc),
max(a.end_time_utc),
sum(a.duration_seconds),
/*total_upload
total_download
total_traffic,*/
max(r.package_id),
last_usage_charge, -------hard coded
max(r.peak_rate),
max(r.bst_plantype),
max(r.free_value), ---for free value
a.IsPeak,
sum(a.TotalDiscount)
from aaa_sessions a,rate_plan r,subscriber_info si
where
si.EXTERNAL_ID=a.USER_ID
and
si.PACKAGE_ID=r.PACKAGE_ID
group by
user_id,bst_plantype,ispeak)t ------do we need to use alias here
on
(summary.user_id=t.user_id
and
summary.type_of_summary=t.bst_plantype
and
summary.ispeak=t.ispeak)
When matched then
update
set
start_date =decode((t.start_time_utc-summary.start_date)-abs(t.start_time_utc-summary.start_date),0,summary.start_date,t.start_time_utc),
end_date=decode((t.end_time_utc-summary.end_date)-abs(t.end_time_utc-summary.end_date),0,t.end_time_utc,s.end_date),
total_duration=summary.total_duration+sum(duration_seconds),
total_upload=summary.total_upload+sum(upload_bytes),
total_download=summary.total_download+sum(download_bytes),
total_traffic=summary.total_upload+sum(upload_bytes)+summary.total_download+sum(download_bytes)
When not matched then
INSERT
(user_id ,
start_date,
end_date,
total_duration,
/*total_upload
total_download
total_traffic,*/
rate_plan_id,
last_usage_charge,
peak_rate,
type_of_summary,
IsPeak,
TotalDiscount)
VALUES
(t.user_id,
t.start_time_utc,
t.end_time_utc,
t.duration_seconds,
/*t.output_bytes,
t.input_bytes,
t.output_bytes+aa.input_bytes,*/
t.PACKAGE_ID,
1, ---hard coded the value
t.PEAK_RATE,
t.BST_PLANTYPE,
t.ispeak,
t.free_value);This is the query,...
Its giving no complilation errors..
I have not used aggregate functions in the insert/update..
have used only decode...
and nowhere i found that aggegate functions not allowed in the insert/update stmts of merge..
Can u please post a link where it is mentioned...
MERGE INTO summary
USING (SELECT a.user_id, MIN (a.start_time_utc) stc,
MAX (a.end_time_utc) etc, SUM (a.duration_seconds) ds,
SUM (a.download_bytes) download,
SUM (a.upload_bytes) upload, MAX (r.package_id) pkg_id,
MAX (r.peak_rate) p_rate, MAX (r.offpeak_rate)
ofp_rate,
MAX (r.bst_plantype) plan_type,
SUM (r.free_value) free_val, a.ispeak,
MAX (r.peak_pulse) p_pulse,
MAX (r.offpeak_pulse) ofp_pulse
FROM aaa_sessions a, rate_plan r, subscriber_info si
WHERE si.external_id = a.user_id
AND si.package_id = r.package_id
GROUP BY user_id, bst_plantype, ispeak) t
ON ( summary.user_id = t.user_id
AND summary.type_of_summary = t.plan_type
AND summary.rate_plan_id = t.pkg_id
AND summary.ispeak = t.ispeak)
WHEN MATCHED THEN
UPDATE
SET start_date =
DECODE ( (t.stc - summary.start_date)
- ABS (t.stc - summary.start_date),
0, summary.start_date,
t.stc
end_date =
DECODE ( (t.etc - summary.end_date)
- ABS (t.etc - summary.end_date),
0, t.etc,
summary.end_date
total_duration = summary.total_duration + t.ds,
total_download = summary.total_download + t.download,
total_upload = summary.total_upload + t.upload,
total_traffic =
summary.total_upload
+ t.upload
+ summary.total_download
+ t.download,
last_usage_charge =
DECODE (t.plan_type,
0, (t.ds - t.free_val)
/ DECODE (t.ispeak, 0, t.ofp_pulse, p_pulse)
* DECODE (t.ispeak, 0, t.ofp_rate, t.p_rate),
((t.download + t.upload) - t.free_val
* DECODE (t.ispeak, 0, t.ofp_rate, t.p_rate)
WHEN NOT MATCHED THEN
INSERT (user_id, start_date, end_date, total_duration,
total_download, total_upload, total_traffic, rate_plan_id,
last_usage_charge, peak_rate, type_of_summary, ispeak,
totaldiscount)
VALUES (t.user_id, t.stc, t.etc, t.ds, t.download, t.upload,
t.download + t.upload, t.pkg_id,
DECODE (t.plan_type,
0, (t.ds - t.free_val)
/ DECODE (t.ispeak, 0, t.ofp_pulse, p_pulse)
* DECODE (t.ispeak, 0, t.ofp_rate, t.p_rate),
((t.download + t.upload) - t.free_val
* DECODE (t.ispeak, 0, t.ofp_rate, t.p_rate)
t.p_rate, t.plan_type, t.ispeak, t.free_val);
COMMIT; -
Sequence Number does not allowed here
Hi,
I am inserting rows in a table called membership with seqence number membership_id.nextval. But i am getting error like
"Sequence number not allowed here"
Before i inserted about 3852 rows in that table
Here is the statement i am using
INSERT INTO MEMBERSHIP (membership_id,ACTIVIST_ID,G_N_ID,ROLE_ID,
REGION_ID,START_dATE,END_DATE,STATUS,state_id)
SELECT membership_id.nextval,a.activist_id,G.g_n_id,R.ROLE_ID,
'',mwlgmemship.start_date,'','Active',''
FROM activist a,
role r,
group_network g,
final.mwlgmemship mwlgmemship,final.mwlgmem mwlgmem
WHERE
a.first_name=mwlgmem.fname and a.last_name=mwlgmem.lname and a.c_zip_code=mwlgmem.czip and
a.c_country=mwlgmem.country and mwlgmem.person_id=mwlgmemship.person_id and
to_char(mwlgmemship.grno)=g.g_n_reference and mwlgmemship.role_id=r.role_id order by r.role_id
I could not understand the problem, please help me
I am selecting the other fields from other tables.
Thanks
SrinivasRestrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in the following constructs:
A subquery in a DELETE, SELECT, or UPDATE statement
A query of a view or of a materialized view
A SELECT statement with the DISTINCT operator
A SELECT statement with a GROUP BY clause or ORDER BY clause
A SELECT statement that is combined with another SELECT statement with the UNION, INTERSECT, or MINUS set operator
The WHERE clause of a SELECT statement
The DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement
The condition of a CHECK constraintAbove text is from the sql reference manual.
HTH
Regards
Raj
Maybe you are looking for
-
BT Yahoo e-mail Account and MacBook Pro
Hi All This is my very first post, so please be patient if this topic has: 1) Already been covered. The ones I have found seem a bit too technical for me (embarrassing!) 2) Shows I'm a bit of a novice For a number of months now I have been happily
-
What's this error??
when i deploy a EJB ,it show me that: Compilation failed. at com.sun.ejb.codegen.GeneratorDriver.compileClasses(GeneratorDriver.java:232) at com.sun.ejb.codegen.GeneratorDriver.preDeploy(GeneratorDriver.java:603) at com.sun.enterprise.
-
I don't use wireless often but when I tried today i could not get the radio to power on. The little light is on (blinks every 5 sec.) the icon has the red slash through it but when I go to Access Connection I can not turn the radio on. Same thing wit
-
How to read bytes at port in TCP/IP communication
Hiii I am having 1 doubt in visa we knows bytes at port by using the property node... but for TCP/IP how should i get bytes at port .... i want to read how many bytes are available in that port..... can any 1 suggest answer......
-
There are the following texts in the "mapviewer_11p6_1_readme.txt" in the MapViewer version 11.1.1.7.1. "--V2 API now supports map templates, which are sets of geoJson data stored as files that work together. Access to a MapViewer server is optional