Converting SQL into PL/SQL
Hi All,
I have emp table with data as below,
SELECT EMPNO,MGR FROM EMP;
EMPNO|MGR
7369|7902
7499|7698
7521|7698
7566|7839
7654|7698
7698|7839
7782|7839
7788|7566
7839|
7844|7698
7876|7788
7900|7698
7902|7566
7934|7782
When ever new emp_id's are generated as shown below, I want to update them for MGR Id's as well, so I have written below query and am getting that and output is also attached,
SELECT new_emp,new_mgr_id, SYSDATE
FROM (WITH ngr AS
(SELECT empno, (select max(empno) from emp) + rownum new_emp,mgr
FROM emp e
START WITH e.mgr is null
CONNECT BY PRIOR e.empno=e.mgr)
SELECT t1.*,
NVL ((SELECT new_emp
FROM ngr t2
WHERE t2.empno = t1.mgr),
99999
) new_mgr_id
FROM ngr t1)
NEW_EMP|NEW_MGR_ID|SYSDATE
7935|99999|12/11/2009 12:57:16 AM
7936|7935|12/11/2009 12:57:16 AM
7937|7936|12/11/2009 12:57:16 AM
7938|7937|12/11/2009 12:57:16 AM
7939|7936|12/11/2009 12:57:16 AM
7940|7939|12/11/2009 12:57:16 AM
7941|7935|12/11/2009 12:57:16 AM
7942|7941|12/11/2009 12:57:16 AM
7943|7941|12/11/2009 12:57:16 AM
7944|7941|12/11/2009 12:57:16 AM
7945|7941|12/11/2009 12:57:16 AM
7946|7941|12/11/2009 12:57:16 AM
7947|7935|12/11/2009 12:57:16 AM
7948|7947|12/11/2009 12:57:16 AM
Now my problem is, I want to get the same requirement by replacing *(select max(empno) from emp) + rownum new_emp* with sequence,
(or) the same logic in one Procedure, am trying but facing some difficulties, can any one help me in acheiving this,
thanks,
sunil
Hi Munky and all,
Sorry if I have not made you clear,
ok let me tell my requirement clearly,
I have EMP Table with Data as shown below,
SELECT empno oldempno, emp_name NAME, mgr oldmgrno
FROM emp;
Output:
OLDEMPNO|NAME|OLDMGRNO
7369|SMITH|7902
7499|ALLEN|7698
7521|WARD|7698
7566|JONES|7839
7654|MARTIN|7698
7698|BLAKE|7839
7782|CLARK|7839
7788|SCOTT|7566
7839|KING|
7844|TURNER|7698
7876|ADAMS|7788
7900|JAMES|7698
7902|FORD|7566
7934|MILLER|7782
Now my requirement is when ever any empno is changed in the table and if that emp is a manager to any other employee, number of that employee should also change automatically with in a single query,
and I have acheived the requirement by using the below query,
SELECT new_emp, NAME, new_mgr_id
FROM (WITH ngr AS
(SELECT empno, *(SELECT MAX (empno)*
FROM emp) + ROWNUM new_emp, emp_name NAME,
mgr
FROM emp e
START WITH e.mgr IS NULL
CONNECT BY PRIOR e.empno = e.mgr)
SELECT t1.*, NVL ((SELECT new_emp
FROM ngr t2
WHERE t2.empno = t1.mgr), 99999) new_mgr_id
FROM ngr t1)
and so output is below,
NEW_EMP|NAME|NEW_MGR_ID
7935|KING|99999
7936|JONES|7935
7937|SCOTT|7936
7938|ADAMS|7937
7939|FORD|7936
7940|SMITH|7939
7941|BLAKE|7935
7942|ALLEN|7941
7943|WARD|7941
7944|MARTIN|7941
7945|TURNER|7941
7946|JAMES|7941
7947|CLARK|7935
7948|MILLER|7947
Now my problem/requirement is I want to use Sequence in place of this query *(SELECT MAX (empno) FROM emp) + ROWNUM new_emp,* but as with clause and subquery clause dosen't allow me to do that, am in vain how to implement that,
So solution to my problem would be a SQL or PL/SQL that can do this operation
Please let me know how to acheive it,
Thanks,
Sunil .N
Similar Messages
-
Convert data into Date Format imported from MS SQL Server.
I have imported Data from MS SQL Server. The "Date Column" received in number format like 41017.6361109954. How can i convert it into Date in Oracle SQL.
If i import same Data in Excel and change the Column Type to Date. It changes successfully. But in Oracle, I tried To_Date function with different parameters but it didn't work.
Edited by: XAVER on Apr 22, 2012 2:31 AMXAVER wrote:
The actual date for 41017.6361109954 is 22-Apr-2012 but its showing 20-APR-2082It looks like offset is January 1, 2000:
select timestamp '2000-01-01 00:00:00' + numtodsinterval(41017.6361109954,'day') from dual;
20-APR-12 03.15.59.990002560 PM
SQL> SY. -
Converting SQL server database into SAP readable XML??
Could anyone kindly let me know what is the procedure to convert SQL server database into SAP readable (encrypted) XML for SAP Authoring tool???
Sorry you will need to be more specific, what is it exactly you want to do? What authoring tool do you mean.
A bit more info and someone might be able to help you.
BRgds,
Simon -
Converting sql timestamp into a usable java format??
hi there.
does anyone know how to convert an sql timestamp into a usable java format? i have retrieved a timestamp from a mysql table in a jsp script and would like to convert it into the following format:
12:42pm | 08.07.02
as i understand it, i'll need to convert the timestamp into seconds since 1970 and then manipulate it as a calendar object? my first line is working, but i don't know what to do after...
java.sql.Timestamp sqlTimestamp = resultSet.getTimestamp("date_and_time");
next...?
any help would be much appreciated!!
thanks.please excuse my java sytnax ignorance, but i've tried a bunch of different syntax arrangements and can't figure out how to use the getTime() method. what comes after my first line there?
java.sql.Timestamp sqlTimestamp = resultSet.getTimestamp("date_and_time");
then something like:
long msec=date.getTime(sqlTimestamp);
but that doesn't seem to work...
thanks for any help! -
Convert SQL server database into SAP readable (encrypted) XML for SAP tool?
Could anyone kindly let me know what is the procedure to convert SQL server database into SAP readable (encrypted) XML for SAP Authoring tool???
So If I understood it correctly there an existing propriertory question bank with SQL server. You are looking at an option to migrate all the tests and questions from the existing system to the LSO system. Right ?
I am still not clear on the xml conversion. Have you guys found a solution which could be achieved through a xml file ?
am not aware of a way through which you could import only a xml file and create tests/questions. If you have a sample xml file then forward me so that I could do some testing on my end.As per my knowledge you could do one of the following. I
1. Create the tests and questions manually in Authoring Environment. It will be a time consuming task. Based on the number of questions you have you might have to assemble a team of content developers to acheive this.
2. Alternatively, you could create a Adobe Flash based assessment. The Flash component would be the front-end and will read from a xml file to display the questions and to drive the funcationality. This would be a easier and less time consuming than creating the assessments manually in authoring environment. However, you might miss out some of the functionality available in the Test Author of Authoring Environment unless you have all the functionality replicated inside Flash. This would require one time effort in creating the Flash template and the xml file structure. Once that is created you could create multiple assessments by just replacing the xml file. If you select this approach then you would have to ensure the data from SQL is converted in the desired xml format required by your Flash component.
Please let me know if you require any further guidance or clarification regarding this.
Regards,
Ravi Sekhar -
How to convert sql query to oracle query?
Hi all,
Hope doing well,
sir i am using oracle database where i am running my sql query in oracle. but this query is not working properly. i used sql developer translation scratch editor to convert that.
it's converted but i am not getting the exact value.
which i was getting in sql server.
here is my query below:
SELECT C.*,ISNULL(P.Comp_Name,'') + ' (' + ISNULL(P.Comp_ID,'') + ')' Parent FROM Comp_Master C LEFT JOIN Comp_Master P ON C.Parent_ID = P.Comp_ID Where C.Comp_ID='C02'
please convert it into oracle so that i can use this query
thanks in advance.Try --
1. Use NVL instead of isNull
2. Use *||* instead of +*
/* Formatted on 9-13-2012 4:39:09 PM (QP5 v5.163.1008.3004) */
SELECT c.*, NVL (p.comp_name, '') || ' (' || NVL (p.comp_id, '') || ')' parent
FROM comp_master c LEFT JOIN comp_master p ON c.parent_id = p.comp_id
WHERE c.comp_id = 'C02'
PS - Do remember to mark the solutions as Helpful or Correct. Thanks for understanding. -
Converting SQL from MSSQL to Oracle
Hi,
I have the following sql written in TSQL. I wanted to convert it into SQL so that i can use it in oracle.
select distinct DT_APPROVAL_GRP,dbo.MagicToDbBoolean(DT_MUST_BE_APPVD) as DT_MUST_BE_APPVD,DT_REVIEW_INTERVAL,DT_REVIEW_UNIT,
case DT_APPROVAL_GRP
when ' ' then '[NoGroup]'
else DT_APPROVAL_GRP
END + '['+cast(dbo.MagicToDbBoolean(DT_MUST_BE_APPVD) as varchar) + ']' +'[' cast( DT_REVIEW_INTERVAL as varchar) ']' +'[' + cast(DT_REVIEW_UNIT as varchar)+']' as ReviewModelCode from dt_document_Type, ag_approval_group WHERE (AG_NAME = DT_APPROVAL_GRP or DT_APPROVAL_GRP=' ' );
Thanks in advance.
MuneerHello
Case is more flexible than decode as you have more comparison operators at your disposal and you can combine multiple conditions in a single test, although for numbers and dates you can use decode with SIGN(arithmetic expression). You can nest decodes(as with case), but they can sometimes be difficult to understand if they're not formatted properly.
I have been told that decode is faster than case, but I haven't personally benchmarked it, so it could well be one of the many myths.
HTH -
Error converting SQL Server DDL and views to Oracle
I am trying to convert SQL Serve 2008 on windows to Oracle 11g using SQL Developer 3.2.20.09. I am using the jtds-1.2.7 drivers to connect to SQL Server.
I have made several attempts to run the conversion and am getting the tables, indexes, and triggers converted with no issue. However, my Procedures and views are not coming across. All of them are giving similar errors as:
"Failed To Convert Stored Procedure get_compvision > esp3.dbo.get_compvision:unexpected end of subtree: Line 0 Column 0"
When I log into the source SQL Server environment using SQL Developer, I get an empty SQL Editor window with "null" when I try to {right-click -> "Open"} on the Procedure.
Logging into SQL Server Administrator as the same user I can see the source code, so the issue appears to be related to SQL Developer and not my user privleges. I am a dbo alias in SQL Server.
In addition, if I click on a view, I can see the data and metadata, but not the SQL that defines the view. I see tabs for column, data, triggers, and details.
In addition, if I go to the "capture" for my Migration project and drill down to procedures, I can see them listed, but each and every procedure gives me a "/* DDL not accesible */" error. I get teh same results for views, triggers and indexes.
Can someone help me? I have been googling for days!
Edited by: user4714217 on Jan 24, 2013 12:54 PMSELECT v.vnd_c, CASE v.use_parent_addr_flg WHEN 0 THEN a.str_1 ELSE pa.str_1 END AS str_1,
CASE v.use_parent_addr_flg WHEN 0 THEN a.str_2 ELSE pa.str_2 END AS str_2,
CASE v.use_parent_addr_flg WHEN 0 THEN a.str_3 ELSE pa.str_3 END AS str_3,
CASE v.use_parent_addr_flg WHEN 0 THEN a.city ELSE pa.city END AS city,
CASE v.use_parent_addr_flg WHEN 0 THEN a.state ELSE pa.state END AS state,
CASE v.use_parent_addr_flg WHEN 0 THEN a.zipcode ELSE pa.zipcode END AS zipcode,
CAST((CASE v.use_parent_addr_flg WHEN 0 THEN (CASE a.foreign_flg WHEN 1 THEN 'Y' ELSE 'N' END)
ELSE (CASE pa.foreign_flg WHEN 1 THEN 'Y' ELSE 'N' END) END) AS char(1)) AS foreign_flg,
CASE v.use_parent_addr_flg WHEN 0 THEN a.country ELSE pa.country END AS country,
CASE v.use_parent_addr_flg WHEN 0 THEN a.cre_d ELSE pa.cre_d END AS cre_d,
CASE v.use_parent_addr_flg WHEN 0 THEN a.mod_d ELSE pa.mod_d END AS mod_d,
CASE v.use_parent_addr_flg WHEN 0 THEN a.mod_by ELSE pa.mod_by END AS mod_by
FROM dbo.om_vendor AS v LEFT OUTER JOIN
dbo.om_address AS a ON a.vnd_id = v.vnd_id AND a.addr_c = 1 INNER JOIN
dbo.om_owner AS o ON v.owr_id = o.owr_id INNER JOIN
dbo.om_address AS pa INNER JOIN
dbo.primary_vendors AS pv ON pa.vnd_id = pv.vnd_id ON o.part_id = pv.part_id
WHERE (pa.addr_c = 1)
WHICH TRANSLATES TO
SELECT v.vnd_c ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.str_1
ELSE pa.str_1
END str_1 ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.str_2
ELSE pa.str_2
END str_2 ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.str_3
ELSE pa.str_3
END str_3 ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.city
ELSE pa.city
END city ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.STATE
ELSE pa.STATE
END STATE ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.zipcode
ELSE pa.zipcode
END zipcode ,
(CASE v.use_parent_addr_flg
WHEN 0 THEN (CASE a.foreign_flg
WHEN 1 THEN 'Y'
ELSE 'N'
END)
ELSE (CASE pa.foreign_flg
WHEN 1 THEN 'Y'
ELSE 'N'
END)
END) foreign_flg ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.country
ELSE pa.country
END country ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.cre_d
ELSE pa.cre_d
END cre_d ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.mod_d
ELSE pa.mod_d
END mod_d ,
CASE v.use_parent_addr_flg
WHEN 0 THEN a.mod_by
ELSE pa.mod_by
END mod_by
FROM om_vendor v
LEFT JOIN om_address a
ON a.vnd_id = v.vnd_id
AND a.addr_c = 1
JOIN om_owner o
ON v.owr_id = o.owr_id
JOIN om_address pa
JOIN primary_vendors pv
ON pa.vnd_id = pv.vnd_id
ON o.part_id = pv.part_id
WHERE ( pa.addr_c = 1 );
Edited by: user4714217 on Jan 24, 2013 1:43 PM -
How to convert sql server procedure in to plsql procedure
hi guys
i have requirement where in i have to convert sql server procedure into plsql procedure.
can some one help me out .
thanks,
Vamshi.DHi Vamshi,
As you want to convert sql server procedure in to plsql procedure
i.e SQL SERVER ->ORACLE Right
FYI
SQL SERVER Proc. Syntax are totally different as compared to ORACLE Proc.
So, better you study Logic of SQL-SERVER Proc and convert into
Oracle Procedure.
Thanks,
Samadhan -
Convert SQL statements to JAVA Code ?
Using SQL queries Can I convert SQL statements to JAVA Code ?
Edited by: user11238895 on Jun 7, 2009 10:54 PM
Edited by: user11238895 on Jun 7, 2009 11:12 PMMe very new to Oracle.
can we convert SQL Queries to JAVA Code using simple built in SQL queries ?
Which SWISS SQL Tool does [Converting SQL Queries to JAVA Code] -
Convert SQL*Report Writer V1 to Reports V6
Is there an Oracle utility to convert the old SQL*Report Writer REPs to Reports V6 RDFs? Also, will Reports V6 for Unix be able to use our REPs from SQL*Report Writer V1?
We are moving to a new server and updating our Oracle software. As a test, we are attempting to rewrite / convert some of our reports from our Unix platform to a test NT server. Once we get to the new Unix server and Oracle, we will have to convert the old REPs to the new Reports for Unix.You can convert SQL*ReportWriter v1.1 reports to Oracle Reports 2.5/3.0 and then to Oracle Reports 6.0. I know there is a migration tool that comes with 2.5, though I'm not sure about 3.0.
-
How to convert sql server database to SQL Server Express LocalDB??
How do I convert sql server database 2008 to SQL Server Express LocalDB??
Thanks
AruHello,
Please read the following article:
http://msdn.microsoft.com/en-us/library/hh873188.aspx
Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com -
How to convert SQL Server hierarchical query (CTE) to Oracle?
How to convert SQL Server hierarchical query (CTE) to Oracle?
WITH cte (col1, col2) AS
SELECT col1, col2
FROM dbo.[tb1]
WHERE col1 = 12
UNION ALL
SELECT c.col1, c.col2
FROM dbo.[tb1] AS c INNER JOIN cte AS p ON c.col2 = p.col1
DELETE a
FROM dbo.[tb1] AS a INNER JOIN cte AS b
ON a.col1 = b.col1See: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10002.htm#i2129904
Ah, just spotted it's a delete statement - you won't be able to do it using subquery factoring in Oracle.
I had a go at trying to convert for you, but notice that you reference the cte from inside the cte... I can only assume you have a table called cte too...
DELETE FROM dbo.tb1
WHERE col1 = 12
OR col2 IN (SELECT col1 FROM cte)
Edited by: Boneist on 22-Jun-2009 09:19 -
Need to convert values into coma separated
Need to convert values into coma separated
I have a string value that stores data like 'NYK,IND,SGP,GER'
FOR EXAMPLE
V_CITY_CODE = 'NYK,IND,SGP,GER'
When I query
select * from city where city_code = V_CITY_CODE;I get no rows, this is because V_CITY_CODE has all city code as single code.
I need a function to search , and replace with ','.
I tried using instr and replace but was unable to convert it.
could some one pls assist me.
thanks in advance
SazLooking for this?
SQL> select * from emp
2 /
EMPNO DEPTNO ENAME SAL DOJ JOB
1 1 Karthick 80 03-DEC-11
2 1 Karthick_1 90 23-NOV-11
3 2 Ram 80 03-DEC-11
4 2 Ram_1 90 23-NOV-11
SQL> var v_ename varchar2(1000)
SQL> exec :v_ename := 'Karthick,Karthick_1'
PL/SQL procedure successfully completed.
SQL> select *
2 from emp
3 where ename in (
4 select regexp_substr(val, '[^,]+', 1, level)
5 from (select :v_ename val from dual)
6 connect by level <= length(val) - length(replace(val, ','))+1
7 )
8 /
EMPNO DEPTNO ENAME SAL DOJ JOB
1 1 Karthick 80 03-DEC-11
2 1 Karthick_1 90 23-NOV-11 -
i work on release 11i application and converts some reports to run with xml publisher
i want to convert a total field that exist in po report to words it seems to convert number into words isthat possible i tried to make this in oracle reports and it run successfully but there is a problem when converting that report to run with xml publisher .
any help will be approtiated.Use ap_amount_utilities_pkg.ap_convert_number
E.g.
SQL> select ap_amount_utilities_pkg.ap_convert_number(trunc(12345678)) from dual;
AP_AMOUNT_UTILITIES_PKG.AP_CONVERT_NUMBER(TRUNC(12345678))
Twelve million three hundred forty-five thousand six hundred seventy-eight
Gareth -
Converting Rows into Column in Oracle 10g
Hi All,
I m using Oracle Version 10.1.0.2.0 - Production
I have requirement to convert rows into column wise as per the following:
My Query is:
WITH t
AS ( SELECT 'A' AS x, 100 AS y FROM DUAL
UNION ALL
SELECT 'B',200 FROM DUAL
SELECT X, Y
FROM t;
X Y
A 100
B 200
My Requirement is
A B
100 200
So any one could help me that how I resolve this.
Regards,
PrasantaDear frank,
Thanks for your support,.
It's working fine for static cases.If the first column is dynamic then how come i will resolve it.
Example:
Create table mytab (ID_C Varchar2(15),Value_N Number);
Records Population into MyTab table is dynamic.
Insert into mytab values('HO',5000);
Insert Into mytab values('PG1',2400);
Insert Into mytab values('PG2',3000);
Insert Into mytab values('PG3',800);
Commit;
SQL> Select * From MyTab;
IDC_ ValueN_
HO 5000
PG1 2400
PG2 3000
PG3 800
Then My expected result will be as follows
HO PG1 PG2 PG3
5000 2400 3000 800
Thanks and Regards,
Prasanta
Maybe you are looking for
-
A665 - S5183 - Question about the ending warranty
Hello, I have a Satellite A665-S5183 with Intel SB Chipset SATA problem. Of course laptop works fine, no performance problems... i'm not using e-sata port so nothing has happened. But it was left 4 days of laptop warranty and 4 days to return laptop
-
I am trying to build a proof of concept where a WPF form is hosted in a seperate runspace and updates are handled from the primary shell/runspace. I have had some success thanks to a great article by Boe Prox, but I am having an issue I wanted to ope
-
How to use Space as field Separator?
I have a flat file with space (multiple spaces between different fields) as a delimiter. Whenever I try to upload the file it doesn't allow me to perform. In the external tab when i chose CSV file and do not give any value in the file separator, it j
-
Smart Zoom in Numbers 1.4 for iPhone 4
Just downloaded Numbers 1.4 for iPhone 4. I created a spreadsheet without problems. My question concerns Smart Zoom. How does one activate this feature or is it automatic? Each time I double-tap on a field to edit it, the cell information doesn't zoo
-
Forefront to Exchange Online Protection - Notification Issue
So I guess we converted awhile back to EOP, but I wasn't with the organization. The problem I have is, when I remove the sync tool off our server, I keep getting notifications that things arnt in sync etc. Clearly they are because we are using the