Cannot perform DML inside a query
Hi,
I have a Function and I am trying to execute an "Insert" statement into the Function. It gives me an error saying that-
ERROR:
ORA-14551: cannot perform a DML operation inside a query
ORA-06512: at "SCOTT.POP3", line 243
I then tried adding : PRAGMA AUTONOMOUS_TRANSACTION to the Function and then it gives me an error saying-
ERROR:
ORA-06519: active autonomous transaction detected and rolled back
ORA-06512: at "SCOTT.POP3", line 245
My code snippet is as follows :
CREATE OR REPLACE FUNCTION pop3 (
username VARCHAR2,
PASSWORD VARCHAR2,
msgnum NUMBER
RETURN tstrings PIPELINED
IS
--PRAGMA AUTONOMOUS_TRANSACTION;
pop3_server CONSTANT VARCHAR2 (100) := 'pop.secureserver.net';
pop3_port CONSTANT NUMBER := 110;
pop3_ok CONSTANT VARCHAR2 (10) := '+OK';
e_pop3_error EXCEPTION;
socket UTL_TCP.connection;
line VARCHAR2 (30000);
line2 VARCHAR2 (30000);
BYTES INTEGER;
msg_from varchar2(4000) := '';
msg_to varchar2(4000) := '';
msg_date varchar2(4000) := '';
msg_sub varchar2(4000) := '';
msg_body clob := NULL;
hyphen_checker number := 0;
msg_body_flag number := 0;
crlf varchar2(2) := chr(13) || chr(10);
-- send a POP3 command
-- (we expect each command to respond with a +OK)
FUNCTION writetopop (command VARCHAR2)
RETURN VARCHAR2
IS
len INTEGER;
resp VARCHAR2 (30000);
BEGIN
len := UTL_TCP.write_line (socket, command);
UTL_TCP.FLUSH (socket);
-- using a hack to check the popd response
len := UTL_TCP.read_line (socket, resp);
IF SUBSTR (resp, 1, 3) != pop3_ok
THEN
RAISE e_pop3_error;
END IF;
RETURN (resp);
END;
BEGIN
DBMS_LOB.CREATETEMPORARY(msg_body,true);
PIPE ROW ('pop3:' || pop3_server || ' port:' || pop3_port);
-- Just to make sure there are no previously opened connections
UTL_TCP.close_all_connections;
-- open a socket connection to the POP3 server
socket :=
UTL_TCP.open_connection (remote_host => pop3_server,
remote_port => pop3_port,
--tx_timeout => POP3_TIMEOUT,
CHARSET => 'US7ASCII'
-- read the server banner/response from the pop3 daemon
PIPE ROW (UTL_TCP.get_line (socket));
-- authenticate with the POP3 server using the USER and PASS commands
LOOP
EXIT WHEN LENGTH (line) = 1 AND line = '.';
END LOOP;
INSERT INTO email (em_issue, em_date, em_from, em_to, em_subject, em_body)
VALUES(seq_issue.nextval, msg_date, msg_from, msg_to, msg_sub, msg_body);
DBMS_LOB.freetemporary(msg_body);
msg_from := '';
msg_to := '';
msg_date := '';
msg_sub := '';
msg_body := NULL;
-- close connection
PIPE ROW ('QUIT');
PIPE ROW (writetopop ('QUIT'));
UTL_TCP.close_connection (socket);
EXCEPTION
WHEN e_pop3_error
THEN
PIPE ROW ('There are no mails !');
END;
Message was edited by:
Monk
Message was edited by:
Monk
See Note:313597.1 on MetaLink
Similar Messages
-
Cannot perform dml operation inside a query
I have created a function which does some dml opration.
when I use it in a through a transformation operator, and execute the map,
it throws the following error:
cannot perform dml operation inside a query
how to handle this?Hi,
if you want to execute the dml within a mapping, use the pre or post mapping procress operator. Or use a sql*plus activity in the process flow.
Regards,
Carsten. -
Why we cannot perform DML operations against complex views directly.
hi
can any tell me why we cannot perform DML operations against complex views directly.Hi,
It is not easy to perform DML operations on complex views which involve more than one table as said by vissu. The reason being you may not know which columns to be updated/inserted/deleted on the base tables of the views. If it is a simple view containing a single table it is as simple as performing actions on the table.
For further details visit this
http://www.orafaq.com/wiki/View
cheers
VT -
Cannot perform DDL DML inside a query
Hi,
I am using Tom Kyte's in_list function to create a select list inside a select query in one of the reports in my application, given as follows:
SELECT col1, col2,...htmldb_item.select_list_from_query(1,NULL,
'(SELECT column_value d,column_value r FROM the((SELECT CAST
(mypackage.in_list(''||colon_delimited_list||'') AS
myTableType) FROM dual) ))' )...FROM A, B WHERE ...
But the following error appears:
report error:
ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
ORA-06512: at "FLOWS_020200.WWV_FLOW", line 7002
ORA-06512: at "FLOWS_020200.WWV_FLOW_UTILITIES", line 113
ORA-06550: line 1, column 45:
PLS-00103: Encountered the symbol "(" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with
If I replace the query passed to function select_list_from_query, with some simple dummy query, then it works fine.
Please tell me is there any limitation of its use as this case?
What may be the possible best solution?
Regards,
Amir AmanI have tried Scott's parenthesis solution first.
It is working but with making an additional change, i.e., passing '||''''||colon_delimited_list||''''||' instead just ''||colon_delimited_list||''.
Denes, I have also seen your examples, really a helpful resource.
Thank you very much!
Amir Aman -
"cannot perform a DML operation inside a query" error when using table func
hello please help me
i created follow table function when i use it by "select * from table(customerRequest_list);"
command i receive this error "cannot perform a DML operation inside a query"
can you solve this problem?
CREATE OR REPLACE FUNCTION customerRequest_list(
p_sendingDate varchar2:=NULL,
p_requestNumber varchar2:=NULL,
p_branchCode varchar2:=NULL,
p_bankCode varchar2:=NULL,
p_numberOfchekbook varchar2:=NULL,
p_customerAccountNumber varchar2:=NULL,
p_customerName varchar2:=NULL,
p_checkbookCode varchar2:=NULL,
p_sendingBranchCode varchar2:=NULL,
p_branchRequestNumber varchar2:=NULL
RETURN customerRequest_nt
PIPELINED
IS
ob customerRequest_object:=customerRequest_object(
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
condition varchar2(2000 char):=' WHERE 1=1 ';
TYPE rectype IS RECORD(
requestNumber VARCHAR2(32 char),
branchRequestNumber VARCHAR2(32 char),
branchCode VARCHAR2(50 char),
bankCode VARCHAR2(50 char),
sendingDate VARCHAR2(32 char),
customerAccountNumber VARCHAR2(50 char),
customerName VARCHAR2(200 char),
checkbookCode VARCHAR2(50 char),
numberOfchekbook NUMBER(2),
sendingBranchCode VARCHAR2(50 char),
numberOfIssued NUMBER(2)
rec rectype;
dDate date;
sDate varchar2(25 char);
TYPE curtype IS REF CURSOR; --RETURN customerRequest%rowtype;
cur curtype;
my_branchRequestNumber VARCHAR2(32 char);
my_branchCode VARCHAR2(50 char);
my_bankCode VARCHAR2(50 char);
my_sendingDate date;
my_customerAccountNumber VARCHAR2(50 char);
my_checkbookCode VARCHAR2(50 char);
my_sendingBranchCode VARCHAR2(50 char);
BEGIN
IF NOT (regexp_like(p_sendingDate,'^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}$')
OR regexp_like(p_sendingDate,'^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}[[:space:]]{1}[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}$')) THEN
RAISE_APPLICATION_ERROR(-20000,cbdpkg.get_e_m(-1,5));
ELSIF (p_sendingDate IS NOT NULL) THEN
dDate:=TO_DATE(p_sendingDate,'YYYY/MM/DD hh24:mi:ss','nls_calendar=persian');
dDate:=trunc(dDate);
sDate:=TO_CHAR(dDate,'YYYY/MM/DD hh24:mi:ss');
condition:=condition|| ' AND ' || 'sendingDate='||'TO_DATE('''||sDate||''',''YYYY/MM/DD hh24:mi:ss'''||')';
END IF;
IF (p_requestNumber IS NOT NULL) AND (cbdpkg.isspace(p_requestNumber)=0) THEN
condition:=condition|| ' AND ' || ' requestNumber='||p_requestNumber;
END IF;
IF (p_bankCode IS NOT NULL) AND (cbdpkg.isspace(p_bankCode)=0) THEN
condition:=condition|| ' AND ' || ' bankCode='''||p_bankCode||'''';
END IF;
IF (p_branchCode IS NOT NULL) AND (cbdpkg.isspace(p_branchCode)=0) THEN
condition:=condition|| ' AND ' || ' branchCode='''||p_branchCode||'''';
END IF;
IF (p_numberOfchekbook IS NOT NULL) AND (cbdpkg.isspace(p_numberOfchekbook)=0) THEN
condition:=condition|| ' AND ' || ' numberOfchekbook='''||p_numberOfchekbook||'''';
END IF;
IF (p_customerAccountNumber IS NOT NULL) AND (cbdpkg.isspace(p_customerAccountNumber)=0) THEN
condition:=condition|| ' AND ' || ' customerAccountNumber='''||p_customerAccountNumber||'''';
END IF;
IF (p_customerName IS NOT NULL) AND (cbdpkg.isspace(p_customerName)=0) THEN
condition:=condition|| ' AND ' || ' customerName like '''||'%'||p_customerName||'%'||'''';
END IF;
IF (p_checkbookCode IS NOT NULL) AND (cbdpkg.isspace(p_checkbookCode)=0) THEN
condition:=condition|| ' AND ' || ' checkbookCode='''||p_checkbookCode||'''';
END IF;
IF (p_sendingBranchCode IS NOT NULL) AND (cbdpkg.isspace(p_sendingBranchCode)=0) THEN
condition:=condition|| ' AND ' || ' sendingBranchCode='''||p_sendingBranchCode||'''';
END IF;
IF (p_branchRequestNumber IS NOT NULL) AND (cbdpkg.isspace(p_branchRequestNumber)=0) THEN
condition:=condition|| ' AND ' || ' branchRequestNumber='''||p_branchRequestNumber||'''';
END IF;
dbms_output.put_line(condition);
OPEN cur FOR 'SELECT branchRequestNumber,
branchCode,
bankCode,
sendingDate,
customerAccountNumber ,
checkbookCode ,
sendingBranchCode
FROM customerRequest '|| condition ;
LOOP
FETCH cur INTO my_branchRequestNumber,
my_branchCode,
my_bankCode,
my_sendingDate,
my_customerAccountNumber ,
my_checkbookCode ,
my_sendingBranchCode;
EXIT WHEN (cur%NOTFOUND) OR (cur%NOTFOUND IS NULL);
BEGIN
SELECT requestNumber,
branchRequestNumber,
branchCode,
bankCode,
TO_CHAR(sendingDate,'yyyy/mm/dd','nls_calendar=persian'),
customerAccountNumber ,
customerName,
checkbookCode ,
numberOfchekbook ,
sendingBranchCode ,
numberOfIssued INTO rec FROM customerRequest FOR UPDATE NOWAIT;
--problem point is this
EXCEPTION
when no_data_found then
null;
END ;
ob.requestNumber:=rec.requestNumber ;
ob.branchRequestNumber:=rec.branchRequestNumber ;
ob.branchCode:=rec.branchCode ;
ob.bankCode:=rec.bankCode ;
ob.sendingDate :=rec.sendingDate;
ob.customerAccountNumber:=rec.customerAccountNumber ;
ob.customerName :=rec.customerName;
ob.checkbookCode :=rec.checkbookCode;
ob.numberOfchekbook:=rec.numberOfchekbook ;
ob.sendingBranchCode:=rec.sendingBranchCode ;
ob.numberOfIssued:=rec.numberOfIssued ;
PIPE ROW(ob);
IF (cur%ROWCOUNT>500) THEN
CLOSE cur;
RAISE_APPLICATION_ERROR(-20000,cbdpkg.get_e_m(-1,4));
EXIT;
END IF;
END LOOP;
CLOSE cur;
RETURN;
END;Now what exactly would be the point of putting a SELECT FOR UPDATE in an autonomous transaction?
I think OP should start by considering why he has a function with an undesirable side effect in the first place. -
ORA-14551: cannot perform a DML operation inside a query
I have a Java method which is deployed as a Oracle function.
This Java method parses a huge XML & populates this data
into a set of database tables.
I have to call this Oracle function in a unix shell script using sqlplus.
Value returned by this function will be used by the shell script to decide
what to do next.
I am calling the Oracle Java function as follows in the shell script:
echo "SELECT XML_TABLES.RUN_XML_LOADER('$P1','$P2','$P3','$P4') FROM DUAL;\n" | sqlplus $DB_USER > $LOG
This gives error - "ORA-14551: cannot perform a DML operation inside a query".
If I have to add a AUTONOMOUS_TRANSACTION pragma to this Java function,
where to I add it considering, that the definition of the function is in a Java class.
Can we do it in call spec?
create or replace package XML_TABLES is
function RUN_XML_LOADER(xmlFile IN VARCHAR2,
xmlType IN VARCHAR2,
outputDir IN VARCHAR2,
logFileDir IN VARCHAR2) RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'XmlLoader.run
(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
return java.lang.String';
end XML_TABLES;
If not is there any other way to acheive this?
Thanks in advance.
Sunitha.If I have to add a AUTONOMOUS_TRANSACTION pragma to this Java function,You'd have to write a PL/SQL function that calls the JSP. But I would caution you about using that pragma. It does introduce tremendous complexity into processing.
As I see it you only need a function to return the result code so why not use a procedure with an OUT parameter?
Cheers, APC
Of course Yoann's suggestion of using an anonymous block would work too.
Message was edited by:
APC -
ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML;;
Hi all,
I have a problem!
I have one PL SQL function doing an Update and insert into some oracle tables, this function return one number (0 or 1 or 2).
I'm excuting this query from one PHP program to call the function :
SELECT SALE.DB_FUNC_ASSOCIATE_TB2U('[email protected]',123)
FROM dual;
the problem that I have these errors :
ERROR DB_FUNC_ASSOCIATE_TB2U Level 1 : ORA-01403: no data found
ERROR DB_FUNC_ASSOCIATE_TB2U : ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
there's a mean that i can do to call this function from PHP without getting this Error such as I tested this function using the script below and it works fine:
declare
a number;
begin
a:= SALE.DB_FUNC_ASSOCIATE_TB2U('[email protected]',123) ;
end;
Please help me :)
regards,Sure, it works in the sense that you would no longer get an error.
Creating this as an autonomous transaction, however, is going to blow your transactional integrity. You've now got code that is being called as the result of a SELECT operation (something that everyone that comes after you will assume is read-only) that commits outside of the current transaction scope. That is almost always a bad thing.
In addition, having a WHEN OTHERS without a RAISE is almost always a bug. You're completely hiding the error message plus you're discarding proper exception handling in order to provide a return code and assuming that the caller is going to check the status. Relying on return status codes is normally a bad idea because it's very easy on the client side to forget to check the return code. Even if the client were to check the return code, it has no idea what went wrong, so it can't even log the root cause of the error.
Justin -
ORA-20001: Oracle error -20001: ORA-20001: Oracle error -14552: ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML has been detected in fnd_global.set_nls.set_parameter('NLS_LANGUAGE','AMERICAN'). has been detected in fnd_global.set_nls.
this error generates everytime when i run a apex application
i did call the package in session state with dbms_session.set_nls('NLS_LANGUAGE','AMERICAN'); but still it shows the error in the report any solution pleaseHi Amrit
Can you put the FND_GLOBAL calls in a pre map trigger/process rather than as part of the map?
Cheers
David -
Getting error SQL Error : ORA-14551: cannot perform a DML operation inside a query
Hi gurus ,
Your help is greatly appreciated ..
I am doing some changes in the fucntion for an existing package .Introducing the new below check , am updating one of the tables based on a if condition ..
IF numALLOWED_COUNT >= numLAST_COUNT_ADDED+1 THEN
blnGDS_Allowed :=True;
varSTMT := 'UPDATE PROD.TMS_PROCESS_COUNTER ';
varSTMT := varSTMT ||' SET last_count_added = last_count_added+1';
varSTMT := varSTMT ||' WHERE process_name = ''DAILY_GDS_COUNT''';
varSTMT := varSTMT ||' AND COUNTER_IND = ''750FD130''';
PROC_LOG('Update Tms_Process_counter varSTMT --' || varSTMT);
IF INSERT_BATCH(99,varSTMT) > 0 THEN
NULL;
END IF;
Function for insert_batch :
UNCTION INSERT_BATCH(numTABLE_ID IN NUMBER, varSQL_STATEMENT IN VARCHAR2) RETURN NUMBER IS
varINSERT_BATCH_STMT VARCHAR2(32767) := NULL;
varADD_REC_TYPE BATCH_TABLES.ADD_REC_TYPE%TYPE;
BEGIN
PROC_LOG( 'INSIDE INSERT_BATCH IRC : ' || varSQL_STATEMENT ); --IRC 9/20 UC
INSERT INTO BATCH_STATEMENT(QUEUE_ID,TABLE_ID,STATEMENT,QUEUE_SEQUENCE_ID)
VALUES (numQUEUE_ID,numTABLE_ID,varSQL_STATEMENT,1);
RETURN 1;
EXCEPTION WHEN OTHERS THEN
PROC_LOG('Failed in INSERT_BATCH');
PROC_LOG('SQL Error : ' || SUBSTR(SQLERRM,1,1000));
RETURN -1;
END INSERT_BATCH;
desc PROD.BATCH_STATEMENT
QUEUE_ID NUMBER(15) NOT NULL
TABLE_ID NUMBER(2) NOT NULL
STATEMENT VARCHAR2(4000 BYTE) NOT NULL
QUEUE_SEQUENCE_ID NUMBER(5) NOT NULL
Some how when its calling the insert_batch , its giving me the error in the logs as below:
04:01:41 - Update Tms_Process_counter varSTMT --UPDATE PROD.TMS_PROCESS_COUNTER SET last_count_added = last_count_added+1 WHERE process_name = 'DAILY_GDS_COUNT' AND COUNTER_IND = '750FD130'
04:01:41 - INSIDE INSERT_BATCH IRC : UPDATE PROD.TMS_PROCESS_COUNTER SET last_count_added = last_count_added+1 WHERE process_name = 'DAILY_GDS_COUNT' AND COUNTER_IND = '750FD130'
04:01:41 - Failed in INSERT_BATCH
04:01:41 - SQL Error : ORA-14551: cannot perform a DML operation inside a querySome how when its calling the insert_batch , its giving me the error in the logs as below:
04:01:41 - SQL Error : ORA-14551: cannot perform a DML operation inside a query
Yes - and the exception is telling you EXACTLY what the problem is. You have a query
IF INSERT_BATCH(99,varSTMT) > 0 THEN
And you are performing a DML operation inside that query:
INSERT INTO BATCH_STATEMENT(QUEUE_ID,TABLE_ID,STATEMENT,QUEUE_SEQUENCE_ID)
VALUES (numQUEUE_ID,numTABLE_ID,varSQL_STATEMENT,1);
Like the exception says: you can't do that.
You need to call the function using PL/SQL and capture the return value into a variable. Then test that variable:
myVar := INSERT_BATCH(99,varSTMT);
if myVar > 0 THEN -
Probelm regarding function ( can not perform dml openration inside a query
hi all,
i have created on function which is used for delete rows and insert new rows ( records) but when i run i got
ora-14551 -can not perform a DML operation inside a query
0ra-06512 - fn_brok_upfdate_dtltbl , line no 21
this error
following are my code please help me
CREATE OR REPLACE FUNCTION Fn_Brok_Update_Dtltbl
(fnBROK_TYPE VARCHAR2,fnSLAB_ID VARCHAR2, fnINV_TYPE_CODE VARCHAR2)
RETURN NUMBER
AS
fnCOUNT PLS_INTEGER;
fnTBLNAME VARCHAR2(40);
fnTMPINV_TYPE_CODE VARCHAR2(1000);
fnTMPINVCODE VARCHAR2(50);
fnMYQUERY VARCHAR2(4000);
BEGIN
IF UPPER(fnBROK_TYPE) = 'UPFRONT' THEN
fnTBLNAME :='UPFRONT_RECD_DTL';
END IF ;
IF fnSLAB_ID IS NOT NULL AND fnINV_TYPE_CODE IS NOT NULL THEN
fnTMPINV_TYPE_CODE := fnINV_TYPE_CODE ;
fnMYQUERY := 'SELECT COUNT(*) FROM '||fnTBLNAME||' WHERE SLAB_ID = '''||fnSLAB_ID||'''' ;
EXECUTE IMMEDIATE fnMYQUERY INTO fnCOUNT ;
IF fnCOUNT > 0 THEN
DELETE FROM UPFRONT_RECD_DTL WHERE slab_id = fnslab_id ;
END IF ;
WHILE fnTMPINV_TYPE_CODE IS NOT NULL
LOOP
SELECT CASE WHEN INSTR(fnTMPINV_TYPE_CODE,',')= 0 THEN fnTMPINV_TYPE_CODE
ELSE Strsplit(fnTMPINV_TYPE_CODE,1,INSTR(fnTMPINV_TYPE_CODE,',') - 1 ) END INTO fnTMPINVCODE FROM DUAL ;
fnMYQUERY := 'INSERT INTO '||fnTBLNAME||'(SLAB_ID, INV_TYPE_CODE)
VALUES ('''||fnSLAB_ID||''','||fnTMPINVCODE||') ' ;
EXECUTE IMMEDIATE fnMYQUERY ;
SELECT CASE WHEN INSTR(fnTMPINV_TYPE_CODE,',')= 0 THEN NULL
ELSE Strsplit(fnTMPINV_TYPE_CODE,INSTR(fnTMPINV_TYPE_CODE,',')+ 1 , LENGTH(fnTMPINV_TYPE_CODE)) END
INTO fnTMPINV_TYPE_CODE FROM DUAL ;
END LOOP ;
fnCOUNT := 1 ;
RETURN fnCOUNT ;
END IF ;
END ;
[\pre]How did you call this function ? from SQL Statement ? Then No way .. . .
ORA-14551: cannot perform a DML operation inside a query
Cause: DML operation like insert, update, delete or select-for-update cannot be performed inside a query or under a PDML slave.
Action: Ensure that the offending DML operation is not performed or use an autonomous transaction to perform the DML operation within the query or PDML slave -
ORA-14552: cannot perform a DDL in a execute immediate - proc
Hi All,
I am trying to disable triggers in a stored procedure:
PROCEDURE Alter_trigger_DISBALE
IS
BEGIN
execute immediate ('alter trigger BEI_INS_MY DISABLE');
END;
I get the following error:
ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
Is there a solution for this problem ?
Best Regards
FriedholdHow are you calling the procedure?
I assume that, since your procedure actually compiles, it doesn't have the parenthesis around the EXCEUTE IMMEDIATE string and that there is a CREATE before the PROCEDURE. I hope that "disable" is spelled correctly in the real thing.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
I am getting "Cannot perform an aggregate function on an expression containing an aggregate or a subquery." error by executing below query, I need to calculate the percentage. Can you please help me on this by modifying the query.
select oe2.OrdSourceID,Count(oe2.OrdSourceID) as TotalOrders,
Percentage = Count(oe2.OrdSourceID) * 100.0 / SUM(Count(oe2.OrdSourceID))
from OeOrders Oe
iNNER JOIN OeOrders2 AS oe2
ON Oe.OrderID = oe2.OrderID
where
Oe.ProviderID = 'JOHN' and Oe.OrderDateTime between '10/07/2014' and '10/15/2014' and oe2.OrdSourceID is not null
AND Oe.[Status] NOT IN ( 'CANCEL', 'CANC', 'CNC', 'UNVER', 'UNV' )
Group by oe2.OrdSourceID
Thanks..
DiddiHi,
please check this general solution using CTE. If you need a specific query help then pls post your DDL+DML :-) I hope you can get the idea from this example.
/************************************************ DDL+DML */
-- DDL
create table T (Num int, Name nvarchar(10))
-- DML
insert T values (1,'a'),(2,'a'),(3,'s'),(22,'s')
GO
/************************************************ Testing and solution */
select SUM(count(*))
from T
GO
--Msg 130, Level 15, State 1, Line 7
--Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
;with MyCTE as (select count(*) C, Name from T group by Name)
--select * from MyCTE
select SUM(C), Name
from MyCTE
group by Name
GO
/************************************************ Clean */
drop table T
GO
Ronen Ariely
[Personal Site] [Blog] [Facebook] -
Performance problem in delete query
Hi,
I have to delete nearly 900 records from a table having 10 million records.
Each time I am deleting 100 of these records and calling this query from my
application many times. If I increase the rownum to 1000 then I get rollback
segment error due to limitation of user buffer.
Delete query is as follows
DELETE FROM try
WHERE DATEY2K<:b1
AND DATEY2K>0
AND ROWNUM<=100
where DATEY2K is a number field storin date information.
The TKPROF are as following
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 9 765.22 5705.34 1340105 1580307 27501 759
Fetch 0 0.00 0.00 0 0 0 0
total 9 765.22 5705.34 1340105 1580307 27501 759
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer goal: FIRST_ROWS
Parsing user id: 14
Rows Execution Plan
0 DELETE STATEMENT GOAL: FIRST_ROWS
0 COUNT (STOPKEY)
0 TABLE ACCESS (BY ROWID) OF 'TRY'
0 INDEX (RANGE SCAN) OF 'ASH' (NON-UNIQUE)
The index ASH is on 2 columns of which first is DATEY2K.
Please advice/suggest to improve the performance of the above query.
Regards,
AshishWhat is the exact error message you are getting. It strikes me that if you cannot delete 900 records from any table, then your rollback is way too small.
Can you issue the query as a SELECT without the rownum?
John -
Error #3200: Cannot perform operation on closed window.
hi,
I'm simply trying to open a new window in a CS extension but when testing it inside Premiere as well as Illustrator it gives me the error
Error #3200: Cannot perform operation on closed window.
When I test it as a standalone desktop app, it works fine.
I tried it with an mxml Window component, and also with code, like:
var newWindow:Window = new Window()
newWindow.title = "New Window";
newWindow.width = 200;
newWindow.height = 200;
newWindow.open(true);
I'm using a WindowedApplication.
Flex 3.5
AIR 2.7
Flash Builder 4.5 (not using Extension Builder)
thanks!
Jeff.thanks Harb, I'm looking CSXSInterface now. But I don't see anything in the api that points at openening a new window. Do you mean
that I should build another extension and load it using requestOpenExtension or should i communicate with some script uing evalScript?
So what I mean is just open a new AIR window on top of my air cs extension. And display an mxml component in that new window, filled with data that is stored in my extension.
An example, some code or any further directions would be appreciated,
Jeff. -
Whenever I'm using photoshop, illustrator, inDesign, it doesn't matter, when I go to open or place files I run into a message window that alerts it cannot perform this operation.
So now what? I have to launch the file external of photoshop, from the root folder and then duplicate it into the existing file. Well, that's silly.
Anyone know of this bug??
Thanks!
CherylThe Cloud forum is not about using individual programs
The Cloud forum is about the Cloud as a delivery & install process
A chat session where an agent may remotely look inside your computer may help
Creative Cloud chat support (all Creative Cloud customer service issues)
http://helpx.adobe.com/x-productkb/global/service-ccm.html
Maybe you are looking for
-
Error while trying to access portal
Hi All, I have installed NetWeaver CE 7.1 in my system. But when i tried to access portal with the url http://<server name>: <port number>/irj/portal im getting the following error Error component failed , reason : Error while retrieving service: com
-
Is there a way to embed copyright information with forms?
I would like to put a copyright on custom forms I am creating, or not really a copyright but just an acknowldgement of my company as the creator of the form and of the practice which is using the form. Is there a way to embed this in a PDF. Not neces
-
Using dbms_job for the 1st time
I am attempting to use dbms_job for the 1st time and doing some test, but I can't get it to run. Connected to: Oracle Database 10g Release 10.1.0.2.0 - Production SQL*Plus: Release 8.0.6.0.0 - Production on Wed Mar 1 10:36:18 2006 I have alter system
-
ITunes requires Safari 4.0.3 message box
Hi !! I usually got this message box after I open iTunes 10.1.1 "itunes requires Safari 4.0.3 or later to be installed to use the i Tunes store. Within iTunes. Use de software update and bla bla bla..." And I've opened the software update and I doesn
-
Billing Block in Customer Master does not default into Sales Order (VA01)
I put a billing block into the customer master but it is not defaulting the billing block when I create a new sales order for that customer. Do you have any tips please for what could be wrong?