Update state of a resource
Hi KM Experts,
I would like to update the status of a KM Resource, currently approval flow is activeted un the directory containing the resource and the status is "to be released".
The following code should put the ressource state back to "in progress" but it doesn't ... what is missing ?
IResource myResource = ...
IPropertyName propName = (IPropertyName) new PropertyName("http://sapportals.com/xmlns/cm", "state");
IProperty prop = myResource.getProperty(propName);
IMutableProperty mutableProp = prop.getMutable();
mutableProp.setStringValue("in progress");
Thanks in advance
Laurent B.
GREAT this was the answer
This is my code now:
IRepositoryServiceFactory repServiceFactory = myResFact.getServiceFactory();
IStatemanagementManager stateMgr = (IStatemanagementManager) repServiceFactory.getRepositoryService(myResource, "StatemanagementRepositoryService");
IStatemanagementResource statRsrc = stateMgr.getStatemangementResource(myResource);
IResourceTransitionList resTransitionList = statRsrc.getAllowedTransitions();
for (int k=0;k<resTransitionList.size();k++){
IResourceTransition resTrans = resTransitionList.get(k);
// try stoping Approval ...
if (resTrans.getID().equals("lbl.stop")){
resTrans.execute();
The KM API documentation is not intuitive on those topics
Thanks
Laurent B.
Similar Messages
-
UPDATE STATEMENT GETTING FAILED
Hi
Can you specify me condition in which case update statement will fail and exception will be handled
I wanted to know that
Lets says I have a procedure
procedure p1 is
begin
update emp set deptno=50;
end;
can you suggest me when will update statement fail and an exception will be raised?
Appreciate your help on the above?
Thanks & Regards
Thakur Manoj R
Edited by: user1014019 on Feb 9, 2011 5:38 AMStandard Exceptions, from the the STANDARD package
DUP_VAL_ON_INDEX ORA-00001 You attempted to create a duplicate value in a field restricted by a unique index.
TIMEOUT_ON_RESOURCE ORA-00051 A resource timed out, took too long.
TRANSACTION_BACKED_OUT ORA-00061 The remote portion of a transaction has rolled back.
INVALID_CURSOR ORA-01001 The cursor does not yet exist. The cursor must be OPENed before any FETCH cursor or CLOSE cursor operation.
NOT_LOGGED_ON ORA-01012 You are not logged on.
LOGIN_DENIED ORA-01017 Invalid username/password.
NO_DATA_FOUND ORA-01403 No data was returned
TOO_MANY_ROWS ORA-01422 You tried to execute a SELECT INTO statement and more than one row was returned.
ZERO_DIVIDE ORA-01476 Divide by zero error.
INVALID_NUMBER ORA-01722 Converting a string to a number was unsuccessful.
STORAGE_ERROR ORA-06500 Out of memory.
PROGRAM_ERROR ORA-06501 Generic "Contact Oracle support" message.
VALUE_ERROR ORA-06502 You tried to perform an operation and there was a error on a conversion, truncation, or invalid constraining of numeric or character data.
ROWTYPE_MISMATCH ORA-06504
CURSOR_ALREADY_OPEN ORA-06511 The cursor is already open.
ACCESS_INTO_NULL ORA-06530
COLLECTION_IS_NULL ORA-06531 -
Auto update stats disabled for a user Database in Sql server
While trying to improve the performance of few queries, we found via execution plan that there were lot of Index/Clustered index seeks. Therefore:
First thing we did, was to check our Re-indexing and update stats job which runs weekly for this user DB ( Around 400 GB in size and is used 24*5). The job was running fine.
Later when we ran SP_Blitz, we came to know that auto-update-stats is disabled for this user DB. We expected this to be a possible cause and change it from false to TRUE(Auto update stats)
Also, per SP_blitz there are user-created statistics for this DB. When ran the query to check how many, we saw around 7K user stats out there.
So my question would be 1) setting the Auto update stats to TRUE would require a reboot or once changed i need to track the performance and 2) Should we consider dropping those user created stats or manually look into them one by one.
How should we proceed on this, please suggest, thanks!There may be good reasons for having auto-stats off, but those cases are not very common. It makes a little more sense to turn if off on table level. An example of the latter is a relatively small table, say < 100000 rows where not many new rows are added,
but the existing rows are being updated frequently. This will trigger autostats, but probably without much benefit.
But if you have a system which is very busy during peak times, you may not want autostats take resources during those hours. But if you turn off autostats, you will need to make sure that stats are updated in some other fashion.
Here is a query that you can use review when your statistics last were updated:
SELECT o.name, s.name, stats_date(o.object_id, s.stats_id) AS lastupdated
FROM sys.objects o
JOIN sys.stats s ON s.object_id = o.object_id
--WHERE s.user_created = 1
ORDER BY lastupdated
7000 user-created statistics sounds a little excessive, but I guess they were added to compensate for the autostats that SQL Server were not permitted to create. I would not recommend dropping these statistics, as SQL Server would spend cycles on recreating
them.
You should not have to restart SQL Server for the Auto-update stats setting to take effect; it takes effect immediately.
Erland Sommarskog, SQL Server MVP, [email protected] -
Prepared/Active state for a Resource adatper.
Hi All,
I am deploying a resource adapter and as soon as the adapter is deployed, though the weblogic page shows it to be in "Prepared" state but it gets started.
If I click on the "Start" button and the weblogic page shows it to be in "Active" state.
What does "Prepared" and "Active" state for a resource adapter signify?
And after this I am unable to stop the resource adatper. Clicking on the "Stop" button makes the status back to to "Prepared" but I can see the adapter still connected to the EIS.
So how to stop a resource adapter?refer the links;
http://www.dannorris.com/2009/03/12/start-database-services-automatically-after-instance-startup/
http://surachartopun.com/2009/04/why-my-oracle-cluster-could-not-start.html
http://surachartopun.com/2009/07/change-oracle-asm-resource-autostart.html
http://surachartopun.com/2009/11/disableenable-automatic-startup-oracle.html
Re: CRS auto-start
hope this may helps you, please update the output here for future references: -
Is there a bulk update statement in 11g?
Hi everyone,
This is a pretty simple request but I cannot seem to find any documentation for it (at least on the 11g DB version).
I have a simple update statement:
UPDATE W_AP_XACT_FS SET DATASOURCE_NUM_ID = 5;
COMMIT;It probably seems strange why I would want to do that, but suffice it to say that I have no control over what value gets loaded into that column, however, I do need to correct it.
Either way, I want to make the above statement as efficient as possible.
What's the fastest way to perform a quick static update like that? Is there such a thing as a bulk update statement?
Thanks for the help!
-JoeI need something that works 100% of the time and doesn't hang & create a DB lock.It has to lock the records it's updating until you commit. You could commit more frequently via a procedural approach but that is generally considered a bad idea because it's slower, takes more resources and risks 'snapshot too old' errors. 'Hanging' can mean a number of things, so I'm not sure which scenario you need to avoid here apart from the update taking a long time. Maybe it's just processing a lot of rows, in which case you might be able to throw some more resources at it with parallel DML. Or maybe it's blocked by another session, in which case you can find out a lot from v$session, v$lock, dba_blockers etc.
UPDATE W_AP_XACT_FS SET DATASOURCE_NUM_ID = 5;Could there ever be any rows prior to the update that already have DATASOURCE_NUM_ID = 5? If so, adding
WHERE datasource_num_id != 5;(if datasource_num_id is mandatory) or something like
WHERE datasource_num_id != 5
OR datasource_num_id IS NULL;(if it's nullable) would reduce the number of rows needing to be processed.
Edited by: William Robertson on Aug 1, 2010 8:07 PM -
Decode function in Update statement
Hello everyone,
I'm trying to write a query where I can update a pastdue_fees column in a book_trans table based on a difference between return_dte and due_dte columns.
I am using Oracle SQL. This is what I have so far for my decode function:
SQL> SELECT
2 DECODE(SIGN((return_dte - due_dte)*2),
3 '-1', '0',
4 '1', '12', 'Null')
5 FROM book_trans;
DECO
Null
12
Null
0
So the logic is that if the sign is -1, the value in return_dte column should be 0; if it's +1 then it's 12 and everything else is Null.
So now, I need to enter my decode function into the update statement to update the columns. However, I get error messages.
The logic should be:
UPDATE book_trans SET PastDue_fees = decode(expression)
I've given it a couple of different tries with the following results:
SQL> UPDATE book_trans
2 SET pastdue_fees = SELECT
3 DECODE(SIGN((return_dte - due_dte)*2),
4 '-1', '0',
5 '1', '12', 'Null')
6 FROM book_trans;
SET pastdue_fees = SELECT
ERROR at line 2:
ORA-00936: missing expression
SQL> UPDATE book_trans
2 SET pastdue_fees =
3 DECODE(SIGN((return_dte - due_dte)*2),
4 '-1', '0',
5 '1', '12', 'Null')
6 FROM book_trans;
FROM book_trans
ERROR at line 6:
ORA-00933: SQL command not properly ended
Any help or tips would be greatly appreciated as I've been taking SQL for about six weeks and not very proficient!
Thanks!882300 wrote:
Hello everyone,
I'm trying to write a query where I can update a pastdue_fees column in a book_trans table based on a difference between return_dte and due_dte columns.
I am using Oracle SQL. This is what I have so far for my decode function:
SQL> SELECT
2 DECODE(SIGN((return_dte - due_dte)*2),
3 '-1', '0',
4 '1', '12', 'Null')
5 FROM book_trans;
DECO
Null
12
Null
0
So the logic is that if the sign is -1, the value in return_dte column should be 0; if it's +1 then it's 12 and everything else is Null.
So now, I need to enter my decode function into the update statement to update the columns. However, I get error messages.
The logic should be:
UPDATE book_trans SET PastDue_fees = decode(expression)
I've given it a couple of different tries with the following results:
SQL> UPDATE book_trans
2 SET pastdue_fees = SELECT
3 DECODE(SIGN((return_dte - due_dte)*2),
4 '-1', '0',
5 '1', '12', 'Null')
6 FROM book_trans;
SET pastdue_fees = SELECT
ERROR at line 2:
ORA-00936: missing expression
SQL> UPDATE book_trans
2 SET pastdue_fees =
3 DECODE(SIGN((return_dte - due_dte)*2),
4 '-1', '0',
5 '1', '12', 'Null')
6 FROM book_trans;
FROM book_trans
ERROR at line 6:
ORA-00933: SQL command not properly ended
Any help or tips would be greatly appreciated as I've been taking SQL for about six weeks and not very proficient!
Thanks!If you really really really want to update the entire table, the syntax would be...
UPDATE book_trans
SET
pastdue_fees = DECODE(SIGN((return_dte - due_dte)*2), -1, 0, 1, 12, Null);I took out all the single quotes. If you actually have a string column and you're storing entirely numbers in it then it should be declared as a NUMBER column and not a character (varchar2) column.
ALWAYS use the proper data type, it'll save you a ton of headaches in the future.
Also, since you're new to the forum, please read the FAQ so you learn the etiquette and what not.
http://wikis.sun.com/display/Forums/Forums+FAQ -
Unable to execute an update statement using CallableStatement
Hi there,
I'm trying to run an update statement from JUnit using java.sql.CallableStatement and oracle.jbo.server.DBTransaction.
String updateSql =
"update footable set barcol=TO_DATE('12-SEP-09','dd-MM-yy') where bazcol = 505";
try {
statement =
applnModule.getDBTransaction().createCallableStatement(updateSql,
2);
int executeUpdate = statement.executeUpdate();
AppsLogger.write(this,
"# records UPDATED ------------------>" + executeUpdate,
AppsLogger.SEVERE);
} catch (SQLException s) {
s.printStackTrace();
Assert.fail("Encountered SQL Exception: " + s);
} finally {
try {
if (statement != null)
statement.close();
} catch (SQLException s) {
}Below is the exception I get when I run the above code. There is no problem with the SQL - it works fine from SQLDeveloper.
java.lang.AssertionError: Encountered SQL Exception: java.sql.SQLDataException: ORA-01858: a non-numeric character was found where a numeric was expected
org.junit.Assert.fail(Assert.java:91)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:105)
org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:86)
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:94)
org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
oracle.apps.common.applicationsTestFramework.junit.internal.AtfJUnit4JTestCaseClassRunner.invokeTestMethod(AtfJUnit4JTestCaseClassRunner.java:362)
oracle.apps.common.applicationsTestFramework.junit.internal.AtfJUnit4JTestCaseClassRunner.runMethods(AtfJUnit4JTestCaseClassRunner.java:272)
oracle.apps.common.applicationsTestFramework.junit.internal.AtfJUnit4JTestCaseClassRunner$1.run(AtfJUnit4JTestCaseClassRunner.java:265)
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
oracle.apps.common.applicationsTestFramework.junit.internal.AtfJUnit4JTestCaseClassRunner.run(AtfJUnit4JTestCaseClassRunner.java:262)Edited by: 911023 on Oct 2, 2012 11:28 AM
Edited by: 911023 on Oct 2, 2012 11:30 AMUsing case statement.
UPDATE gor_gold_post
SET hoov_flag = CASE WHEN TRUNC (ADD_MONTHS (rec.loyalty_date, rec.loyalty_period) - SYSDATE) < 304
OR
(TRUNC (ADD_MONTHS (rec.loyalty_date, rec.loyalty_period) - SYSDATE) IS NULL
AND (SYSDATE - TO_DATE (rec.contract_date, 'YYYYMMDD')) > 91.2)
THEN 1
ELSE 99
END,
b49n = CASE WHEN TRUNC (ADD_MONTHS (rec.loyalty_date, rec.loyalty_period) - SYSDATE) < 121.6
OR
(TRUNC (ADD_MONTHS (rec.loyalty_date, rec.loyalty_period) - SYSDATE) IS NULL
AND (SYSDATE - TO_DATE (rec.contract_date, 'YYYYMMDD')) > 91.2)
THEN 1
ELSE 99
END
WHERE tariff_code IN (169, 135, 136);Note: Code not tested. -
Is their any limit on the number of column updates in a update statement!
Hello All,
Is their any limit on the number of columns to set in a single update statement.+
am using oracle 11g .
example :-
UPDATE FMLY SET as_comp1 = v_as_comp1 , as_comp2 = v_as_comp2, as_comp3 = v_as_comp3, as_comp4 = v_as_comp4 , as_comp5 = v_as_comp5 , perslt18 = v_perslt18 , persot64 = v_persot64 , fam_size = v_fam_size , numchild = total_children , C_AGE1 = v_c_age1, C_AGE2 = v_c_age2, C_AGE3 = v_c_age3, C_AGE4 = v_c_age4 WHERE FAMID = fmly_famid(i) ;
and also is it good practice to issue single update or multiple updates ?
example for the above update i can have multiple statements like .. does the performance matters if so which is good
UPDATE FMLY SET as_comp1 = v_as_comp1 , as_comp2 = v_as_comp2, as_comp3 = v_as_comp3, as_comp4 = v_as_comp4 , as_comp5 = v_as_comp5
WHERE FAMID = fmly_famid(i) ;
UPDATE FMLY SET perslt18 = v_perslt18 , persot64 = v_persot64 , fam_size = v_fam_size
WHERE FAMID = fmly_famid(i) ;
UPDATE FMLY SET numchild = total_children WHERE FAMID = fmly_famid(i) ;
UPDATE FMLY SET C_AGE1 = v_c_age1, C_AGE2 = v_c_age2, C_AGE3 = v_c_age3, C_AGE4 = v_c_age4 WHERE FAMID = fmly_famid(i) ;
thanks/kumar
Edited by: kumar73 on Sep 25, 2010 8:38 AMIf you can do it in a single SQL statement then you should do that.
Here's a mantra that I found to work out pretty good:
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:73891904732164 -
Error while schedulingg update stat in db13
Dear Experts,
Please look into my issue we are facing an error while scheduling update statistics in db13 and I tried to open detailed log
It is given
SXPG_COMMAND_EXECUTE failed for BRTOOLS - Reason: program_start_error: For More Information, See SYS
Please help me how to solve this my error
RegardsHi,
Check the owner for BRBACKUP, BRARCHIVE, and BRCONNECT in kernel,
these files should be with SIDADM, if not change the owner to SIDADM and rerun the update stats.
and also Refer the note 446172
Regards,
Ram -
How do I pass multiple values from a text box to an update statement
I hope this does not sound to lame. I am trying to update multiple values Like this:
Code|| Computer Desc || Computer Price || Computer Name
SEL1 || Apple macbook || 1564 || Apple Macbook Basic
SEL2 || Dell 630 || 1470 || Dell Latitude
I want to change all six values at once in one update statement based on the Code, I can't find a good tutorial/example to help me.
Can anyone point me in the right direction?
Thanks so much,
LauraYou can do conditional updates with decode or case statements e.g.
SQL> create table t as
2 select 'SEL1' as code, 'Apple macbook' as comp_desc, 1564 as comp_price, 'Apple Maxbook Basic' as comp_name from dual union
3 select 'SEL2', 'Dell 630', 1470, 'Dell Latitude' from dual
4 /
Table created.
SQL>
SQL> update t
2 set comp_desc = CASE code WHEN 'SEL1' THEN 'Test1' Else 'Test2' END,
3 comp_price = CASE code WHEN 'SEL1' THEN 1234 Else 2345 END,
4 comp_name = CASE code WHEN 'SEL1' THEN 'Test1 Name' Else 'Test2 Name' END
5 /
2 rows updated.
SQL>
SQL> select * from t
2 /
CODE COMP_DESC COMP_PRICE COMP_NAME
SEL1 Test1 1234 Test1 Name
SEL2 Test2 2345 Test2 Name
SQL> -
Need help to write a query for Update statement with join
Hi there,
The following update statement gives me error as the given table in set statement is invalid. But its the right table .
Is the statement correct? Please help .
update (
select distinct(vpproadside.VEHICLE_CRED_OVERRIDE.vin)
from vpproadside.VEHICLE_CRED_OVERRIDE
join vpproadside.vpp_vehicle
on vpproadside.vpp_vehicle.vin = vpproadside.VEHICLE_CRED_OVERRIDE.vin
where VPP_CARRIER_SEQ_NUMBER = 90
and EXPIRY_DATE = '17-MAR-10'
set vpproadside.VEHICLE_CRED_OVERRIDE.EXPIRY_DATE = '15-SEP-10';Edited by: Indhu Ram on Mar 12, 2010 1:00 PM
Edited by: Indhu Ram on Mar 12, 2010 1:22 PM
Edited by: Indhu Ram on Mar 12, 2010 2:35 PM
Edited by: Indhu Ram on Mar 15, 2010 8:04 AM
Edited by: Indhu Ram on Mar 15, 2010 8:06 AM
Edited by: Indhu Ram on Mar 15, 2010 8:28 AMAsk Tom has very good discussion about this, if UPDATE does not work for PK issue, you can use MERGE
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:760068400346785797 -
Running an update statement on two dependent attributes
Dear All,
I have a repair_job table that contains values for work_cost, parts_cost and total_cost which is the sum of the work and parts cost values. I want to run an update statement that doubles the work cost and, naturally, updates the value of total cost as well. I tried to run it as:
update repair_job
set work_cost = 2 * work_cost, total_cost = work_cost + parts_cost
where licence in (
select licence from car
where year = to_char(sysdate,'YYYY')
thinking that because the update of work_cost is first on the list, the updated value of total cost would be correct. It seems however that the update of total cost happens first and then the work cost is been updated; not sure what the reason is for that and it happens no matter what the order is in the update statement.
I know that I can do it in two separate statements, or use a trigger or PL/SQL to do it but I am curious as to why it has this behaviour. Also, is there a way to do it in a single SQL statement - i.e. forcing the update of the work_cost attribute first and then that of total_cost?
I look forward to hearing from you soon.
Regards,
GeorgeWelcome to the forum!
>
thinking that because the update of work_cost is first on the list, the updated value of total cost would be correct. It seems however that the update of total cost happens first and then the work cost is been updated; not sure what the reason is for that and it happens no matter what the order is in the update statement.
I know that I can do it in two separate statements, or use a trigger or PL/SQL to do it but I am curious as to why it has this behaviour. Also, is there a way to do it in a single SQL statement - i.e. forcing the update of the work_cost attribute first and then that of total_cost?
>
The update to all columns of the row happen at the same time - there is no order involved.
You don't need two statements but you do need to do the updates based on the current value of the columns.
set work_cost = 2 * work_cost, total_cost = 2 * work_cost + parts_cost----------
In addition to sb92075's comments in 11 g you could also just define a virtual column for total_cost and then just query it like you do now.
total_cost NUMBER GENERATED ALWAYS AS (work_cost + parts_cost) VIRTUAL,See this Oracle-base article for an example
http://www.oracle-base.com/articles/11g/virtual-columns-11gr1.php
Edited to supplement sb92075's reply by mentioning virtual columns -
How can i use multiple row subquery in update statement
Hai All
I using group function in my update statement.. and i need to update more rows so i need to use multiple row
subquery pls tell me how to use multiple row subquery in update statement
For example
while i am using this like this i got an error
update dail_att set outtime in (select max(r2.ptime) from temp_att where empcode=r2.enpno and
barcode=r2.cardn and attend_date=r2.pdate group by enpno,pdate,cardn);
Pls tell me how to use with example
Thanks & regards
Srikkanth.MHai Man
Thanks for ur response Let me clear what i need
First step Fetch the records as text file and stores into table T1
and the next step is i have seperated the text using substring and stores in different columns of a table
There are two shifts 0815 to 1645 and 1200 and 2000
Here I rep IN and O rep OUT
Empno date time inout
001 01-01-10 0815 I
002 01-01-10 0815 I
003 01-01-10 0818 I
001 01-01-10 1100 0
001 01-01-10 1130 I
002 01-01-10 1145 0
002 01-01-10 1215 I
004 01-01-10 1200 I
005 01-01-10 1215 I
004 01-01-10 1315 O
004 01-01-10 1345 I
001 01-01-10 1645 0
002 01-01-10 1715 0
003 01-01-10 1718 0
004 01-01-10 2010 0
005 01-01-10 2015 0
This is my T1 table i have taken data from text file and stored in this table from this table i need to move data to another table T2
T2 contains like this
Empno Intime Intrin Introut Outtime Date
001 0815 1100 1130 1645 01-01-10
002 0815 1145 1215 1715 01-01-10
003 0818 1718 01-01-10
004 1200 1315 1345 2010 01-01-10
005 1215 2015 01-01-10
This what i am trying to do man but i have little bit problems Pls give some solution with good example
And my coding is
declare
emp_code varchar2(25);
in_time varchar2(25);
out_time varchar2(25);
Cursor P1 is
Select REASON,ECODE,READMODE,EMPD,ENPNO,FILL,PDATE,PTIME,INOUT,CARDN,READERN
From temp_att
group by REASON,ECODE,READMODE,EMPD,ENPNO,FILL,PDATE,PTIME,INOUT,CARDN,READERN
ORDER BY enpno,pdate,ptime;
begin
for r2 in p1 loop
declare
bar_code varchar2(25);
begin
select barcode into bar_code from dail_att where empcode=r2.enpno and attend_date=r2.pdate;
For r3 in (select empcode,empname,barcode,intime,intrin,introut,addin,addout,outtime,attend_date from dail_att)loop
if r2.inout ='O' then
update dail_att set outtime =(select max(r2.ptime) from temp_att where empcode=r2.enpno and barcode=r2.cardn and attend_date=r2.pdate group by r2.cardn,r2.enpno,r2.pdate );
end if;
end loop;
exception
when no_data_found then
if r2.inout ='I' then
insert into dail_att(barcode,empcode,intime,attend_date)(select r2.cardn,r2.enpno,min(r2.ptime),r2.pdate from temp_att group by r2.cardn,r2.enpno,r2.pdate );
end if;
end;
end loop;
commit;
end;
Pls tell me what correction i need to do i the update statement i have used a subquery with group function but when i used it will return only one row but my need is to return many rows and i need to use multiple row subquery
and how can i use it in the update statement
Thanks In Advance
Srikkanth.M -
How to use the updated value in the same update statement
Hello,
I just wonder how to use the updated new value of other column in the same udpate statement. I am using Oracle 11.2, and want to update the two columns with one update statement as following:
create table tb_test (id number(5), tot number(5), mon_tot number(5));
update tb_test set (tot = 15, mon_tot = tot *15) where id = 1;
...I would like to update both tot and mon_tot column, the value of mon_tot shall be determinted by the new value of tot.
Thanks,
Edited by: 939569 on 1-Feb-2013 7:00 AMEdit: example added
SQL> create table tb_test
2 ( id number(5)
3 , tot number(5)
4 , mon_tot number generated always as (tot*15) virtual
5 );
Table created.
SQL> insert into tb_test (id, tot) values (1, 5);
1 row created.
SQL> select * from tb_test;
ID TOT MON_TOT
1 5 75
1 row selected.
SQL> update tb_test
2 set tot = 15
3 where id = 1;
1 row updated.
SQL> select * from tb_test;
ID TOT MON_TOT
1 15 225
1 row selected. -
How to track a column is not updated in a update statement issued.
Hello All,
Is there a way to write a trigger when a particular column is not specified in update statement.
For example, consider i have a table with 20 columns(Say Column1...column20). Trigger has to get fired only when column15(say) is not specified.
I know
CREATE OR REPLACE TRIGGER test_trigger
BEFORE UPDATE
OF COLUMN1, COLUMN2......COLUMN20--Except COLUMN15
ON TESTTABLE
FOR EACH ROW
BEGIN
END of_clause; /
above trigger will solve my problem. But i don't want to mention all columns in this trigger. It will cause maintainance problem afterwards.
Is there any way to mention something like NOT OF COLUMN in the trigger ?
Regards,
Abhijit.That trigger would get fired for every column except column 15.
What do you mean by "when a particular column is not specified in update statement"? Do you mean that the column is not mentioned at all in the update statement, or that the value of that column is not being changed even if it is mentioned in the statement?
If you mean the former, then I don't think there is any way to do that. however, if you want to do something only if the value in column15 is unchanged, then something along the lines of:
CREATE TRIGGER test_trigger
BEFORE UPDATE OF testtable
FOR EACH ROW
BEGIN
BEGIN
IF (:new.column15 IS NULL and :old.column15 IS NULL) OR
(:new.column15 IS NOT NULL and :old.column15 IS NOT NULL and
:new.column15 = :old.column15) THEN
< do whatever for no changes >
ELSE
< do nothing or something else for changes >
END IF;
END;John
Maybe you are looking for
-
How can I display a PDF in Fit-Page View mode in Firefox?
I would like to use Firefox to view PDF documents from the web - but cannot get the PDF fit-page view to be a Firefox option. For large PDF files, I then have to scroll slowly through them - whereas in Adobe Reader, I can view them page by page and s
-
Small pictures on sites no longer appear. Tried IE and they were there.
On Amazon the small pictures on some pages don't show. The titles are there but no pictures I know it's something to do with Mozilla because I tried the same pages on Amazon using IE and the pictures appeared. I didn't change anything it just suddenl
-
It is on an older macbook that originally has cs4. When I try and open camera raw in cs6, this message appears. Help please!
-
How can I increase the resolution of a picture used in the burned DVD?
My version is Elements 10 and I have always had a problem when making the main menu that included a picture. Even if the picture is 12 MPixels it appears as if is less then 1 MPixels.
-
After installing AdobePhotoshop CS2, I restarted following instructions, I can not find the exe file to launch it. Where will it be? Inside Adobe CS2 folder I see instmsia.exe and instmsiw.exe only. Are these for launching Photoshop?