472,364 Members | 2,047 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,364 software developers and data experts.

To update a record using rowid in duplicate row.

Hi,

want to write an plsql code to update a single record using rowid where all the rows are duplicated could someone help me in this case.

Prod_service_id Location feature ord
----------------------- ------------ ---------- ----
PP23456 Chennai Fast2 B77
PP23456 Chennai Fast2 B77

Now I need to update one of the record to madurai.


Thanks,
Ganesh
Mar 26 '08 #1
17 11978
chaarmann
785 Expert 512MB
update our_table
set Location = 'madurai'
WHERE rowid in
(SELECT MIN(rowid)
FROM our_table
GROUP BY Prod_service_id, Location, feature, ord);

Hi,

want to write an plsql code to update a single record using rowid where all the rows are duplicated could someone help me in this case.

Prod_service_id Location feature ord
----------------------- ------------ ---------- ----
PP23456 Chennai Fast2 B77
PP23456 Chennai Fast2 B77

Now I need to update one of the record to madurai.


Thanks,
Ganesh
Mar 26 '08 #2
Thanks thats Perfect.....
Is there any way to store the rowid before updating.
Please guide me to get through the issue.
Mar 27 '08 #3
amitpatel66
2,367 Expert 2GB
Thanks thats Perfect.....
Is there any way to store the rowid before updating.
Please guide me to get through the issue.
Could you please let us know if you would like to store the record that is getting updated in to some log table or something?
Mar 27 '08 #4
Yes we have to store the record in log table. Please clarify me.
Mar 27 '08 #5
amitpatel66
2,367 Expert 2GB
Yes we have to store the record in log table. Please clarify me.
Create a trigger, before update on table1, take the old data and insert into a log table.
Mar 27 '08 #6
I tried creating but the result does not getting updated could you please help me out.
Mar 27 '08 #7
amitpatel66
2,367 Expert 2GB
I tried creating but the result does not getting updated could you please help me out.

Could you please post what you tried for?
Mar 27 '08 #8
Thanks its working now one more thing is that I have many columns and in that I want to access an single record with unique id and cut the first two letters using the number in the query is it possible.

eg:
emp_id
----------
ABssCC123

I tried the below logic but its not working...
Trim(to_char(emp_id, 'A%'),2)
Mar 27 '08 #9
amitpatel66
2,367 Expert 2GB
Thanks its working now one more thing is that I have many columns and in that I want to access an single record with unique id and cut the first two letters using the number in the query is it possible.

eg:
emp_id
----------
ABssCC123

I tried the below logic but its not working...
Trim(to_char(emp_id, 'A%'),2)
Try this Query:

Expand|Select|Wrap|Line Numbers
  1.  
  2. SELECT SUBSTR('ABccSS123', 1,2) FROM dual;
  3.  
  4. SUBSTR('ABCCSS123',1,2)
  5. ------------------------------------------
  6. AB
  7.  
  8.  
Mar 28 '08 #10
This is the code Iam using in plsql where the emp_svce_id (employee service id) has to be printed which is CCDB00123. I want to cut the first two character and store DB00123 below is the script Iam trying can you please help me....
Expand|Select|Wrap|Line Numbers
  1.  
  2. declare
  3. a employee_master.emp_svce_id%type;
  4. b employee_master.emp_svce_id%type;
  5. begin
  6. a:='&emp_svce_id';
  7. select emp_svce_id into a from employee_master where emp_code ='PRODCD';
  8. dbms_output.put_line('The a is'||a); // prints CCDB00123
  9. select substr('a',1,2) into b from employee_master where emp_code ='PRODCD';
  10. dbms_output.put_line('b is'||b); // prints only a [ need DB00123 ]
  11. end;
  12.  
Mar 28 '08 #11
amitpatel66
2,367 Expert 2GB
Try This:

Expand|Select|Wrap|Line Numbers
  1. DECLARE
  2. --a employee_master.emp_svce_id%TYPE;
  3. b employee_master.emp_svce_id%TYPE;
  4. BEGIN
  5. --a:='&emp_svce_id';
  6. --SELECT emp_svce_id INTO a FROM employee_master WHERE emp_code ='PRODCD';
  7. --dbms_output.put_line('The a is'||a); // prints CCDB00123
  8. SELECT SUBSTR(emp_svce_id,3) INTO b FROM employee_master WHERE emp_code ='PRODCD'; -- this will give you DB00123 in variable b
  9. dbms_output.put_line('b is'||b); -- prints only a [ need DB00123 ]
  10. END;
  11.  
NOTE: The single line Comment in PLSQL is -- and not //
Mar 28 '08 #12
The mistake I did is passed 'a' instead of giving a. Thanks for guiding me...
Have a nice weekend..
Mar 28 '08 #13
amitpatel66
2,367 Expert 2GB
The mistake I did is passed 'a' instead of giving a. Thanks for guiding me...
Have a nice weekend..
Thats right. And the use of vairalbe a was not required as it will occupy space for no reason. The sample code that i have shown you is the ideal way.
Mar 28 '08 #14
Here a is the unique id and this should be entered by the user so Iam using this and now one more thing is that I want to update the emp_value and for the particular emp_svce_id with the result from the below query

SELECT SUBSTR(emp_svce_id,3) INTO b FROM employee_master WHERE emp_code ='PRODCD'and emp_svce_id=a;

And want to print the emp_value and emp_code; will it be possible below is what I tried.
Expand|Select|Wrap|Line Numbers
  1.  
  2. DECLARE
  3. a employee_master.emp_svce_id%TYPE;
  4. b employee_master.emp_svce_id%TYPE;
  5. c product_feature_instance.feature_code%type;
  6. d product_feature_instance.feature_value%type;
  7. e product_feature_instance.feature_value%type;
  8. BEGIN
  9. a:='&emp_svce_id';
  10. SELECT SUBSTR(emp_svce_id,3,10) INTO b FROM employee_master WHERE emp_code ='PRODCD'and emp_svce_id=a;
  11. dbms_output.put_line('b is'||b);
  12. e:=b;
  13. update employee_master set emp_value =e where prod_svce_id =a and emp_code ='PRODCD' and order_line_function ='RG';
  14. select emp_code, emp_value into c,d from employee_master where emp_svce_id  =a and emp_code ='PRODCD' and order_line_function ='RG';
  15. dbms_output.put_line('emp_code'||c||'emp_value'||d);
  16. commit;
  17. end;
  18.  
Mar 28 '08 #15
amitpatel66
2,367 Expert 2GB
Small modifications to your code:

Expand|Select|Wrap|Line Numbers
  1.  
  2. DECLARE
  3. a employee_master.emp_svce_id%TYPE;
  4. b employee_master.emp_svce_id%TYPE;
  5. c product_feature_instance.feature_code%TYPE;
  6. d product_feature_instance.feature_value%TYPE;
  7. --e product_feature_instance.feature_value%TYPE;
  8. BEGIN
  9. a:='&emp_svce_id';
  10. SELECT SUBSTR(emp_svce_id,3,10) INTO b FROM employee_master WHERE emp_code ='PRODCD'AND emp_svce_id=a;
  11. dbms_output.put_line('b is'||b);
  12. UPDATE employee_master SET emp_value =b WHERE prod_svce_id =a AND emp_code ='PRODCD' AND order_line_function ='RG' RETURNING emp_code,emp_value INTO c,d; -- This will work in case if only one record gets updated. Else you will need to use array for the RETURNING values
  13. COMMIT;
  14. --SELECT emp_code, emp_value INTO c,d FROM employee_master WHERE emp_svce_id  =a AND emp_code ='PRODCD' AND order_line_function ='RG';
  15. dbms_output.put_line('emp_code'||c||'emp_value'||d  );
  16. END;
  17.  
Mar 28 '08 #16
Its throwing error. The error details is given below.

Error details:
declare
*
ERROR at line 1:
ORA-12899: value too large for column
"SCOTT"."EMP_MASTER"."EMP_VALUE" (actual: 10, maximum: 7)
ORA-06512: at line 13
Mar 28 '08 #17
amitpatel66
2,367 Expert 2GB
Try This:

Expand|Select|Wrap|Line Numbers
  1.  
  2. DECLARE
  3. a employee_master.emp_svce_id%TYPE;
  4. b employee_master.emp_svce_id%TYPE;
  5. c employee_master.emp_code%TYPE;
  6. d employee_master.emp_value%TYPE;
  7. BEGIN
  8. a:='&emp_svce_id';
  9. SELECT SUBSTR(emp_svce_id,3) INTO b FROM employee_master WHERE emp_code ='PRODCD'AND emp_svce_id=a;
  10. dbms_output.put_line('b is'||b);
  11. UPDATE employee_master SET emp_value =b WHERE prod_svce_id =a AND emp_code ='PRODCD' AND order_line_function ='RG' RETURNING emp_code,emp_value INTO c,d; -- This will work in case if only one record gets updated. Else you will need to use array for the RETURNING values
  12. COMMIT;
  13. dbms_output.put_line('emp_code'||c||'emp_value'||d    );
  14. END;
  15.  
Mar 29 '08 #18

Sign in to post your reply or Sign up for a free account.

Similar topics

9
by: Sandy | last post by:
I am trying to do the following: EXEC SQL UPDATE MY TABLE SET COL1 = :newValue WHERE COL1 = 0 AND ROWNUM = 1 ORDER BY COL2; (index on COL1, COL2)
1
by: Robert | last post by:
How can I query an existing table and update a field in each record in the table with the occurrence count of each record e.g. update field to 1 (= first record occurrence), update field to 2 for...
0
by: Doug | last post by:
I've got a strongly-typed dataset with 2 related tables in it ("Staff" and "Roles"). I want to make a change to the parent Staff row and also to its child Role row. I'm having difficulty figuring...
5
by: Louis LeBlanc | last post by:
Hey folks. I'm new to the list, and not quite what you'd call a DB Guru, so please be patient with me. I'm afraid the lead up here is a bit verbose . . . I am working on an application that...
7
by: Altemir | last post by:
I want to create an UPDATE statement that updates a value in a table in database A based on the results of an inner join between tables each residing in deifferent databases. What is the correct...
2
by: MLH | last post by:
Fields in MyTable: PostID PostDate RollQtyXfer RollDenomination RollCount37 RollCount23
4
by: FangQ | last post by:
hi I am very new to mysql. I have a question about using the "on duplicate update" clause with insert command. my table "data" has two columns, field1 and field2, where field1 is the index...
2
by: Steve Richter | last post by:
what is the standard way of using sql in C# to increment a counter column in a shared control table? ( example: the next order number ) I would like to sql select a row in a table and lock it....
16
by: ARC | last post by:
Hello all, So I'm knee deep in this import utility program, and am coming up with all sorts of "gotcha's!". 1st off. On a "Find Duplicates Query", does anyone have a good solution for...
2
by: Kemmylinns12 | last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
0
by: Arjunsri | last post by:
I have a Redshift database that I need to use as an import data source. I have configured the DSN connection using the server, port, database, and credentials and received a successful connection...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific technical details, Gmail likely implements measures...
1
by: Matthew3360 | last post by:
Hi, I have been trying to connect to a local host using php curl. But I am finding it hard to do this. I am doing the curl get request from my web server and have made sure to enable curl. I get a...
0
BLUEPANDA
by: BLUEPANDA | last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
2
by: Ricardo de Mila | last post by:
Dear people, good afternoon... I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control. Than I need to discover what...
1
by: ezappsrUS | last post by:
Hi, I wonder if someone knows where I am going wrong below. I have a continuous form and two labels where only one would be visible depending on the checkbox being checked or not. Below is the...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.