Multiple column seq update
Hi all,
Can someone help me to update my emp table.
this is my orginal table
SQL> select * from emp_addr order by 1, 2;
EMP_NAME EMP_ADD CO_NAME
ADAM 803, Coton Gren rd hl bank
ADAM 803, Coton Gren rd hl bank
ADAM Defu Lane 10 can bank
JACK Ubi Rd 4 bank ofshore
JON 78, Sin Ming Dr bank ofshore
JON 78, Sin Ming Dr bank ofshore
SAM 15, Telok Kurau Rd bank
SAM 205,Alexandra Rd bank
8 rows selected
the output should look like
SQL> select * from emp_addr order by 1, 2;
EMP_NAME EMP_ADD CO_NAME
ADAM_1 803, Coton Gren rd hl bank
ADAM_1 803, Coton Gren rd hl bank
ADAM_2 Defu Lane 10 can bank
JACK_1 Ubi Rd 4 bank ofshore
JON_1 78, Sin Ming Dr bank ofshore
JON_1 78, Sin Ming Dr bank ofshore
SAM_1 15, Telok Kurau Rd bank
SAM_2 205,Alexandra Rd bank
8 rows selectedhere ADAM_1 Repeats twice bcoz EMP_ADD and CO_NAME is twice.
Its a group by EMP_ADD and CO_NAME
thanks
rgds
saaz
SQL> select * from t
2 /
NAME ADDRESS COMP
ADAM 803, Coton Gren rd hl bank
ADAM 803, Coton Gren rd hl bank
ADAM Defu Lane 10 can bank
JACK Ubi Rd 4 bank ofshore
JON 78, Sin Ming Dr bank ofshore
JON 78, Sin Ming Dr bank ofshore
SAM 15, Telok Kurau Rd bank
SAM 205,Alexandra Rd bank
8 rows selected.
SQL> update t
2 set name = ( select name||rno name
3 from (select row_number() over(partition by name order by name) rno,
4 t.*
5 from (select distinct name, address, comp from t) t) t1
6 where t.name = t1.name
7 and t.address = t1.address
8 and t.comp = t1.comp)
9 /
8 rows updated.
SQL> select * from t
2 /
NAME ADDRESS COMP
ADAM1 803, Coton Gren rd hl bank
ADAM1 803, Coton Gren rd hl bank
ADAM2 Defu Lane 10 can bank
JACK1 Ubi Rd 4 bank ofshore
JON1 78, Sin Ming Dr bank ofshore
JON1 78, Sin Ming Dr bank ofshore
SAM1 15, Telok Kurau Rd bank
SAM2 205,Alexandra Rd bank
8 rows selected.
Similar Messages
-
Performance of update query for single column vs multiple column
Hi All,
I could not find any answer for this, does it ever matter in terms of performance updating single column versus multiple column in a single update query.
For eg. table consisting of 15 columns, what would be the difference in performance when one column is update in the single query against another update query where 15 columns are updated.
Please do keep in mind my table columns in actually could be around 150+.
Thanks for any information provided.If updated columns aren´t on where clause , then the only impact of 15 columns will be a increase on redo generation, and a possible chainning row.
So since the redo is one of the things that have a large impact, the answer is yes.
The performance will be slower.
Regards
Helio Dias.
http://heliodias.com
OCE SQL, OCP 9i -
Update Multiple Columns when concerned about redo/undo log sizes.
Hi ,
I have update statements that updates multiple columns at once if any of them is changed. What I see that even though the value of column is not changed it still increases the redo size.
Below is a sample code similar to the ones in my code. Basically I check whether there is a difference in any of the columns to be updated and update all of them.
Is there a way to improve redo log size without splitting the update statement for every column that I will be updating. Redo/Undo log size is a concern for us..
For i In 1.rec.Count Loop
Update employees e
Set e.first_name = rec(i).first_name, e.last_name = rec(i).last_name
Where e.first_name != rec(i).first_name
Or e.last_name != rec(i).last_name;
End Loop;My database is 10g.Muhammed Soyer wrote:
Redo/Undo log size is a concern for us..You are worried about the wrong thing.
If you are concerned about the amount of undo and redo, you should be less concerned about the small diffrence between updating 1 or 3 columns and remove the loop that is contributing to a massive increase in both undo and redo.
Re: global temporary table row order
Name Run1 Run2 Diff
STAT...undo change vector size 240,500 6,802,736 6,562,236
STAT...redo size 1,566,136 24,504,020 22,937,884Run2 shows what adding a loop to a regular SQL statement will do to undo and redo. It made the redo used 15 times greater and the undo almost 30 times greater. -
Merge statement - update multiple columns from a single sub-select
Is it possible to write in 10gR2, a MERGE statement, with UPDATE for multiple columns from a single sub_select?
like this:
MERGE INTO tableA
using ( select * from temp) tmp
on( tableA. col1 = tmp.col1)
when matched then
update set ( tableA.col5,
tableA.col6,
tableA.col7) = ( select sum(col2), sum(col3), sum(col5)
from tableX
where tableX.col1 = tableA.col1...)Hi,
The USING clause is not a sub-query, so it can't reference columns from tables that are not in it.
Include tableA in the USING clause if you really need to refer to it there. (It's not obvious that you do.)
As always, it helps if you post:
(1) The version of Oracle (and any other relevant software) you're using
(2) A little sample data (just enough to show what the problem is) from all the relevant tables
(3) The results you want from that data (In the case of a DML statement, such as MERGE, this will be the state of the tables when everything is finished.)
(4) Your best attempt so far (formatted)
(5) The full error message (if any), including line number
Executable SQL statements (like "CREATE TABLE AS ..." or "INSERT ..." statements) are best for (2).
If you can present your problem using commonly available tables (for example, tables in scott schema, or views in the data dictionary), then you can omit (2).
Formatted tabular output is okay for (3). -
UPDATE multiple columns with conditional SET parameters
I have a procedure that updates multiple columns of a table using the procedure's parameter. Is it possible to have one update statement with conditional SET parameter?
CREATE TABLE TEMP
(POL_NUM NUMBER,
OED DATE,
TERM NUMBER,
TRANS_CD CHAR(2));
INSERT INTO TEMP VALUES (1, '1 AUG 2009', 12, 'NB');
INSERT INTO TEMP VALUES (2, '4 AUG 2009', 12, 'XL');
INSERT INTO TEMP VALUES (3, '2 AUG 2009', 12, 'RN');
COMMIT;
CREATE OR REPLACE PROCEDURE TMP_PROC (
pPOL_NUM NUMBER,
pOED IN DATE,
pTERM IN NUMBER,
pTRANS_CD CHAR2)
AS
BEGIN
IF pOED IS NOT NULL THEN
UPDATE TEMP SET OED = pOED WHERE POL_NUM = pPOL_NUM;
END IF;
IF pTERM IS NOT NULL THEN
UPDATE TEMP SET TERM = pTERM WHERE POL_NUM = pPOL_NUM;
END IF;
IF pTRAN_CD IS NOT NULL THEN
UPDATE TEMP SET TRANS_CD = pTRANS_CD WHERE POL_NUM = pPOL_NUM;
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;Is it possible to replace multiple IFs from the code to have only one UPDATE statement with condition that update the column only if the passed parameter is not null? In real scenario I have more than 3 columns and I don't want to write many IF blocks.
Please help Gurus!!
Edited by: Kuul13 on Sep 18, 2009 1:26 PMHi,
You certainly don't want to issue separate UPDATE statements for every column; that will be really inefficent.
SQL has several ways to implement IF-THEN-ELSE logic. CASE is the most versatile, but NVL will do everything you need for this job. You can use one of those to set a column to itself (and therefore not really update that column) when appropriate.
For example:
CREATE OR REPLACE PROCEDURE TMP_PROC (
pPOL_NUM IN NUMBER,
pOED IN DATE,
pTERM IN NUMBER,
pTRANS_CD IN CHAR
AS
BEGIN
UPDATE temp
SET oed = NVL (poed, oed)
, term = NVL (pterm, term)
, trans_cd = NVL (ptrans_cd, trans_cd)
WHERE pol_num = ppol_num;
COMMIT; -- Maybe
END tmp_proc;"EXCEPTION WHEN OTHERS THEN NULL" is almost always a bad idea. If there's an error, don't you want to know about it? Shouldn't you at least log a message in a warnings table or something?
Think careflully about whether or not you want to COMMIT every time you call this procedure.
Just as it's inefficient to issue a separate UPDATE statement for every column, it's also inefficient to issue a separate UPDATE statement for every row. If efficiency is important, it should be possible to UPDATE several rows in a single UPDATE statement, using NVL (or CASE, or COALESCE, or NULLIF, or NVL2, or ...).
This was a very well-written question! Thanks for providing the CREATE TABLE and INSERT statements, and such a clear explanation. -
Update multiple columns with single update statement..
HI all,
i am reading the columns value from different table but i want to update it with signle update statement..
such as how to update multiple columns (50 columns) of table with single update statement .. is there any sql statement available i know it how to do with pl/sql..As I understood, may be this. Here i am updating ename,sal, comm columns all at once.
SQL> select * from emp where empno=7369;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17/12/1980 12:00:00 800 20
SQL> UPDATE emp
2 SET ename = lower (ename),
3 sal = sal + 1000,
4 comm = 100
5 WHERE empno = 7369;
1 row updated.
SQL> select * from emp where empno=7369;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 smith CLERK 7902 17/12/1980 12:00:00 1800 100 20
SQL> UPDATE emp
2 SET ename = (SELECT 'ABCD' FROM DUAL),
3 sal = (SELECT 1000 FROM DUAL),
4 comm = (SELECT 100 FROM DUAL)
5 WHERE empno = 7369;
1 row updated. -
How to update multiple columns from different tables using cursor.
Hi,
i have two tables test1 and test2. i want to udpate the column(DEPT_DSCR) of both the tables TEST1 and TEST2 using select for update and current of...using cursor.
I have a code written as follows :
DECLARE
v_mydept1 TEST1.DEPT_CD%TYPE;
v_mydept2 TEST2.DEPT_CD%TYPE;
CURSOR C1 IS SELECT TEST1.DEPT_CD,TEST2.DEPT_CD FROM TEST1,TEST2 WHERE TEST1.DEPT_CD = TEST2.DEPT_CD AND TEST1.DEPT_CD = 'AA' FOR UPDATE OF TEST1.DEPT_DSCR,TEST2.DEPT_DSCR;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO v_mydept1,v_mydept2;
EXIT WHEN C1%NOTFOUND;
UPDATE TEST2 SET DEPT_DSCR = 'PLSQL1' WHERE CURRENT OF C1;
UPDATE TEST2 SET DEPT_DSCR = 'PLSQL2' WHERE CURRENT OF C1;
END LOOP;
COMMIT;
END;
The above code when run says that it runs successfully. But it does not updates the desired columns[DEPT_DSCR].
It only works when we want to update single or multiple columns of same table...i.e. by providing these columns after "FOR UPDATE OF"
I am not sure what is the exact problem when we want to update multiple columns of different tables.
Can anyone help me on this ?oops my mistake.....typo mistake...it should have been as follows --
UPDATE TEST1 SET DEPT_DSCR = 'PLSQL1' WHERE CURRENT OF C1;
UPDATE TEST2 SET DEPT_DSCR = 'PLSQL2' WHERE CURRENT OF C1;
Now here is the upated PL/SQL code where we are trying to update columns of different tables --
DECLARE
v_mydept1 TEST1.DEPT_CD%TYPE;
v_mydept2 TEST2.DEPT_CD%TYPE;
CURSOR C1 IS SELECT TEST1.DEPT_CD,TEST2.DEPT_CD FROM TEST1,TEST2 WHERE TEST1.DEPT_CD = TEST2.DEPT_CD AND TEST1.DEPT_CD = 'AA' FOR UPDATE OF TEST1.DEPT_DSCR,TEST2.DEPT_DSCR;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO v_mydept1,v_mydept2;
EXIT WHEN C1%NOTFOUND;
UPDATE TEST1 SET DEPT_DSCR = 'PLSQL1' WHERE CURRENT OF C1;
UPDATE TEST2 SET DEPT_DSCR = 'PLSQL2' WHERE CURRENT OF C1;
END LOOP;
COMMIT;
END;
Please let us know why it is not updating by using using CURRENT OF -
Hi,
how do I update some columns of a table within one statement?
For Example,
My tabel has column: a,b,c,d and I want wo update column a,c,d
Thanks hor help,
Walter
Edited by: user457173 on Sep 22, 2008 11:26 AM
Edited by: user457173 on Sep 22, 2008 11:26 AM
Edited by: user457173 on Sep 22, 2008 11:27 AMNicloei W wrote:
2nd option doesnt seems to be convincing, can give you ora query fetch more rows...I was only giving the principles on the assumption that people generally know about adding where clauses to restrict their data. It wasn't a conclusive working example, just a sample example of how to update multiple columns with a single select statement (what that select statement is, is not important).
Some people are just pedants. ;) -
Can I update 2(or multiple) columns in a table based on one of update col?
Hi All,
I have a table emp:
empno number
,salary number
,comm number
Now, the comm column is always a % of the salary column (but still would like to store the comm in the table as a column).
Assuming that someone get a salary increment and I need to update the commission as well based on the new salary value, should I still use 2 update statements or is there anyway, I can achive in a single update clause itself?
example:
if the old values were:
=============
1234 10000 1000
and if I do the following,
update emp
set salary = salary + 3000
,comm = salary * 10/100
where empno = 1234;
the comm value still points to the old salary value and the table looks like:
emp:
===
1234 13000 1000
instead of:
1234 13000 1300 (10% of the new salary - 13000)
so, the only way to achieve this is to issue 2 update statements? Or is there any way of achieving in one single update statement? Please let me know.
Am on Oracle 10.2.0.3.0.
Thanks,
Srini.Or you could create a after update trigger on salary column that updates comm whenever Sal updates.
What happens if someone else issues an update on salary and forgets to update the commission? Wont you have incorect data then?
Also, commision is a redundant column . I dont think it is a good idea to have computed values as a separate column.
Thanks,
Rajesh, -
Need to update multiple columns using another table
I have 2 tables. and i need to update rows of 1 table using another table
Table1
Serial_no. payment_date Payment_amt
101 22/11/2010 150
101 18/03/2011 355
102 15/04/2011 488
103 20/05/2011 178
102 14/06/2011 269
101 28/06/2011 505
Table2
Serial_no Charge_amt Last_paymt_dt Last_paymt_amt
101 255
102 648
103 475
I want to update Last_paymt_dt and Last_paymt_amt of table2 using Table1, I have written following update statement but it gives error that single row subquery return multiple row.
Update Table2
set (Last_paymt_dt,Last_paymt_amt) = (select max(payment_date, payment_amt) from table1
where table1.Serial_no = table2.Serial_no group by payment_amt)
kindly suggest how should i update.SQL> select * from table1
2 /
SERIAL_NO PAYMENT_DA PAYMENT_AMT
101 22/11/2010 150
101 18/03/2011 355
102 15/04/2011 488
103 20/05/2011 178
102 14/06/2011 269
101 28/06/2011 505
6 rows selected.
SQL> select * from table2
2 /
SERIAL_NO CHARGE_AMT LAST_PAYMT LAST_PAYMT_AMT
101 255
102 648
103 475
SQL> update table2
2 set (last_paymt_dt,last_paymt_amt) = (
3 select max(payment_date),
4 max(payment_amt) keep(dense_rank last order by payment_date)
5 from table1
6 where table1.serial_no = table2.serial_no
7 )
8 /
3 rows updated.
SQL> select * from table2
2 /
SERIAL_NO CHARGE_AMT LAST_PAYMT LAST_PAYMT_AMT
101 255 28/06/2011 505
102 648 14/06/2011 269
103 475 20/05/2011 178
SQL> SY. -
Crystal Report multiple columns
I'm having trouble with Crystal Report's multiple columns in the detail section.
The details section, the multiple columns is checked then the printing direction is across - down. Since the form I am using is a pre-printed form, by estimation it can only allow at best 30 records in one page, that is 15 in the 1st half of the column and another 15 records on the next. For visual:
Invoice No Invoice Date invoice total Invoice No Invoice Date invoice total
1 16
2 17
3 .
. 28
14 29
15 30
For some reason there is this giant space after the last set of rows before it prints out the page footer. This giant blank section disrupts the layout of the page footer section.
Here are some info on the details section as configuration is involved:
Format with Multiple Columns - checked
In Paging: New Page after 30 visible Records
In Layout: Width: 3.5 in Height: 0.0 in
Horizontal: 0.0 in Vertical: 0.0 in
Printing Direction: Across-Down
Anyone knows how to suppress it or have the page footer move upwards?
P.S To see actual pre-printed form, please download this [http://www.mediafire.com/i/?csu0q75mjynys2k]
Edited by: Khristine Angelei Basilla on Mar 1, 2012 8:34 AMNow why didn't I try that out. Actually, initial plan was 2 subreports.
So when I added the second subreport in the group footer section, it only prints the details on the last page, which should not be the case as I need to be printed on all pages.
I'll test it out. I'll post an update soon.
Thanks. -
Index on multiple columns issue Oracle 9i
Hi,
I have a couple of issues and would appreciate it if anyone can help:
a). I have a table that has indexes on multiple columns, so for example:
Index 1 on Org_Type, Org_Id and Effdt
Index 2 on FICE_CD, Org_Id and Effdt etc.
I have 9 such indexes and all of them hav Effdt in it.
My question is if I query the table and always use a subquery to get the max Effdt rows form the table, will the above indexes help in my query or will I have to create another index just on Effdt so that my Query runs faster.
b). I have a target table with more than 20 million rows in it. This table has an Effdt too and I would like to find the max effdted row in this table as well so that I can then use that date-time stamp in my ETL tool to do an incremental update from my source table each night. But since the amount of rows is huge, my query runs forever. I have a normal non-unique index on Effdt. Is there another way I can optimize this table? Currenlty I have resorted to getting all rows from source that are >= (sysdate -1), but I would prefer to get the max date-time stamp from the target table itself.
Thanks,
CJHi ,
Thanks for the input. I just used the explain plan and found that there is a full table scan happening on the PS_EXT_ORG_TBL, so I guess I will have to create an index specifically on the effdt field. The sql is as follows:
Select E.EMPLID, E.INSTITUTION, E.EXT_ORG_ID, E.EXT_CAREER, E.EXT_DATA_NBR, E.EXT_SUMM_TYPE, E.UNT_ATMP_TOTAL, E.UNT_COMP_TOTAL,
E.CLASS_RANK, E.CLASS_SIZE, E.PERCENTILE, E.UM_GPA_EXCLUDE, E.UM_EXT_ORG_GPA, E.CONVERT_GPA,
E.UM_EXT_ORG_CNV_CR, E.UM_EXT_ORG_CNV_GPA, E.UM_EXT_ORG_CNV_QP, E.UM_GPA_OVERRIDE, E.EXT_ACAD_LEVEL,
F.FROM_DT, F.TO_DT, G.EXT_DEGREE_NBR, G.DEGREE, G.DESCR "DEGREE DESCR", G.DEGREE_DT, H.EFFDT,
H.EFF_STATUS, H.SCHOOL_CODE, H.LS_SCHOOL_TYPE, H.ATP_CD, H.CITY, H.STATE, H.COUNTRY,
H.DESCR "SCHOOL DESCR", H.PROPRIETORSHIP
FROM PS_EXT_ACAD_SUM E, PS_EXT_ACAD_DATA F, PS_EXT_DEGREE G, PS_EXT_ORG_TBL H
WHERE E.EXT_ORG_ID = F.EXT_ORG_ID AND E.EMPLID = F.EMPLID
AND E.EXT_ORG_ID = G.EXT_ORG_ID AND E.EMPLID = G.EMPLID
AND E.EXT_ORG_ID = H.EXT_ORG_ID
AND H.EFFDT=(SELECT MAX(EFFDT) FROM PS_EXT_ORG_TBL H1
WHERE H.EXT_ORG_ID=H1.EXT_ORG_ID
AND H.EFF_STATUS=H1.EFF_STATUS
AND H.SCHOOL_CODE=H1.SCHOOL_CODE
AND H.LS_SCHOOL_TYPE=H1.LS_SCHOOL_TYPE
AND H.ATP_CD=H1.ATP_CD
AND H.CITY=H1.CITY
AND H.STATE=H1.STATE )
My source DB is a copy of the transactional database, so there is no danger of new rows coming in. -
Result to be in multiple columns instead of one
Hi,
i have used the below sql :
select parent_id, max(sys_connect_by_path(name,'^')) History
from (select parent_id, name, row_number() over (partition by parent_id order by name) rn
from notes )
start with rn = 1
connect by prior rn = rn-1
and prior parent_id = parent_id
group by parent_id
order by parent_id
this gets me the 'HISTORY' row returned in a single column. Problem is if i have 5 HISTORY notes, they all appear in same column with delimiter ^.
Please help to modify query as to get History as multiple columns instead of 1
Below is example of sample data returned , NOTE: history could contain any amount of rows.
ID HISTORY
1 ^TT updates requested^TT updates requested^Update on TT #104836
2 ^Call back actioned^Delivery Update^Internation Dialing ^TT Follow up (147023)
3 ^Queried poor signal strength
Idea case would be :
ID HISTORY HISTORY1 HISTORY2
1 TT updates requested TT updates requested Update on TT #104836Hi,
You might want to leave the results as one long string, but just add some spacing.
Right now you're using
sys_connect_by_path(name,'^')and getting output like
1 ^TT updates requested^TT updates requested^Update on TT #104836
2 ^Call back actioned^Delivery Update^Internation Dialing ^TT Follow up (147023)
3 ^Queried poor signal strengthwhich is as hard to read as an OTN posting that doesn't use \ tags. Naturally you're not going to insult your uses by asking them to read something like that.
If you use this instead:REPLACE ( sys_connect_by_path ( RPAD (name, 32)
,'^'
, '^'
then the output will look like this:TT updates requested TT updates requested Update on TT #104836
Call back actioned Delivery Update Internation Dialing TT Follow up (147023)
Queried poor signal strength
See this thread:
Re: Report count and sum from many rows into many columns
for various ways to deal with problems like this. -
Split one column value and insert into multiple columns
hi
am new to plsql .
i want to split a characters from one column and insert into multiple columns
i tried used substr function the symbol ',' vary his place dynamically ,so i can't apply substr function.
for eg: before split
col1 :
col2 :
col3 :
col4 :
colu5: adsdf,fgrty,erfth,oiunth,okujt
after split
col1 :adsd
col2 :fgrty
col3 :erfth
col4 :oiunth
col5 : adsdf,fgrty,erfth,oiunth,okujt
can anyone help me
thanks
Edited by: 800324 on Dec 23, 2010 8:28 AM
Edited by: 800324 on Dec 23, 2010 8:36 AMHow about:
SQL> create table t
2 (col1 varchar2(30)
3 ,col2 varchar2(30)
4 ,col3 varchar2(30)
5 ,col4 varchar2(30)
6 ,col5 varchar2(30)
7 );
Table created.
SQL> insert into t (col5) values ('adsdf,fgrty,erfth,oiunth,okujt');
1 row created.
SQL> insert into t (col5) values ('x,y');
1 row created.
SQL> insert into t (col5) values ('a,b,c,d');
1 row created.
SQL> select * from t;
COL1 COL2 COL3 COL4 COL5
adsdf,fgrty,erfth,oiunth,okujt
x,y
a,b,c,d
3 rows selected.
SQL>
SQL> merge into t a
2 using ( with t1 as ( select col5||',' col5
3 from t
4 )
5 select substr(col5, 1, instr(col5, ',', 1, 1)-1) col1
6 , substr(col5, instr(col5, ',', 1, 1)+1, instr(col5, ',', 1, 2)- instr(col5, ',', 1, 1)-1) col2
7 , substr(col5, instr(col5, ',', 1, 2)+1, instr(col5, ',', 1, 3)- instr(col5, ',', 1, 2)-1) col3
8 , substr(col5, instr(col5, ',', 1, 3)+1, instr(col5, ',', 1, 4)- instr(col5, ',', 1, 3)-1) col4
9 , rtrim(col5, ',') col5
10 from t1
11 ) b
12 on ( a.col5 = b.col5 )
13 when matched then update set a.col1 = b.col1
14 , a.col2 = b.col2
15 , a.col3 = b.col3
16 , a.col4 = b.col4
17 when not matched then insert (a.col1) values (null);
3 rows merged.
SQL> select * from t;
COL1 COL2 COL3 COL4 COL5
adsdf fgrty erfth oiunth adsdf,fgrty,erfth,oiunth,okujt
x y x,y
a b c d a,b,c,d
3 rows selected.
SQL> Assuming you're on 9i... -
Primary Key Multiple Column with Date - parameter issue
All,
I am having an issue that I cannot find the answer to. I have looked high and low to no avail. Please help.
The issue at hand is that I have a table that has a multiple column primary key and one of the columns happens to be a date and the other is a string. I have a basic search and I want an update picture in the results table that the users can click on and go to a different page to update that record. The issue is when I fire an action based on the update picture I also want to set parameters based on the record that I selected. So I set the string parameter and that works fine. The issue is with the date. When i set the date parameter it works but it chops off the timestamp. Later when I try to get this parameter 'pageContext.getParameter("dateParameter");' it will bring in a date like 15-Dec-2008 but I need the entire date and timestamp (i.e. 15-Dec-2008 10:20:33) to correctly identify the record.
Please help!
Thanks,
Colby JHi
since every parameter go in url as a string format so u will never get the date parameter with complete timestamp,the solution would de
1.) Set a fire action on update picture,give its event name as "update",
2.) clicking on update picture will fire this event .
3.) in processFormrequest method of controller
OAApplicationModule am = pageContext.getApplicationModule(webBean);
if ("update".equals(pageContext.getParameter("event")))
// this will give the select row where update is clicked
String rowReference = pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
VORowImpl row = (EmployeeSummaryVORowImpl)am.findRowByRef(rowReference);
Timestamp sdateVal=(String)row.getAttribute("Date value");
// this will transfer the values to next page
pageContext.putTransactionTransientValue("transferdvalue",sdateVal);
// and in the next page u can get the value like this
timestamp getDateVal=pageContext.getTransactionTransientValue("transferdvalue"l);
hope this will resolve your issue,Please let me know if u face any issue
thanx
Pratap
Maybe you are looking for
-
Acrobat 9.0 Network install not removing reader or supressing license
I am running a network install created by the customization wizard of Acrobat 9. In the wizard I told it to remove all versions of reader and Acrobat and suppress the user agreement. The program installs but users have to agree ULA, and reader 7 is s
-
hi everyone I am sorry to put my post here, because I could not put the post on the "Remote Desktop". Why? I don´t know. I went though many messages about "Can´t install by using remote desktop", because it needs a software "PackageMaker". I have som
-
Adobe 9 will not use the default voice, only Microsoft Sam?
hi have adobe reader 9 installed AT&T Crystal voice. set as default. BUT adobe 9 only recognizes, Microsoft Sam. how to change? thanks
-
Slide to Unlock Does not respond.
I have the new iPad. When I turn it off and then back on, the slide to unlock does not respond. However, when I do slide it and wait a little bit, it does unlock. Is there anything I can do to get the slide to unlock to respond?
-
Dear HR Experts, I have a requirement of having personnel number for employees to be Nine digits. Currently the length of data element for PERNR is 8, please let me know if this can be made to 9. The Number range will be external. The same number wil