Skip to main content

Update record set in same column with max id in it(2 Cursors update)


DECLARE 
CURSOR C1 IS
SELECT MAX(COLUMN_NAME1) AS HEADERID FROM TABLE_NAME WHERE CONDITIONS ;


CURSOR C2 IS
SELECT ID FROM TABLE_NAME WHERE CONDITIONS AND COLUMN_NAME1 IS NULL;

L_MAX_HEADERID number;
BEGIN 


OPEN C1;
FETCH C1 INTO L_MAX_HEADERID;
CLOSE C1;

FOR R1 IN C2

LOOP

L_MAX_HEADERID :=L_MAX_HEADERID+1;

UPDATE TABLE_NAME SET
       COLUMN_NAME1=L_MAX_HEADERID
       WHERE ID=R1.ID;
       
       
       
END LOOP;
END;

Comments

Popular posts from this blog

SQL Blocking query

SELECT s.session_id, r.status, r.blocking_session_id 'Blk by' , r.wait_type, wait_resource, r.wait_time / ( 1000.0 ) 'Wait Sec' , r.cpu_time, r.logical_reads, r.reads, r.writes, r.total_elapsed_time / ( 1000.0 ) 'Elaps Sec' , Substring (st. TEXT ,(r.statement_start_offset / 2 ) + 1 , (( CASE r.statement_end_offset WHEN - 1 THEN Datalength (st. TEXT ) ELSE r.statement_end_offset END - r.statement_start_offset) / 2 ) + 1 ) AS statement_text, Coalesce ( Quotename ( Db_name (st.dbid)) + N '.' + Quotename (Object_sch...

Split String which has space and replace spaces with "/"

Sample String "ABCD123 ETS, NM" UPDATE TABLE_NAME SET COLUMN_NAME = SUBSTR( 'ABCD123 ETS, NM' , 0 , 4 ) || REPLACE ((SUBSTR(( REPLACE ( 'ABCD123 ETS, NM' , ', ' , '/' )), 5 ,INSTR(( REPLACE ( 'ABCD123 ETS, NM' , ', ' , ',/' )), ',' , 1 ) - 4 )), ' ' , '/' ) || REPLACE (SUBSTR( 'ABCD123 ETS, NM' ,INSTR( 'ABCD123 ETS, NM' , ',' , 1 ) + 2 ), 'NM' , 'NEW MEXICO' ) WHERE CONDITIONS;