Learning Oracle



  • I am generally a .NET Developer, but have come to the realization that the best way to move ahead at my current job is to learn Oracle PL/SQL Development (Procedures, Functions, Views, etc.). My SQL skills are generally good. I can run a query against our Oracle databases and 95% of the time find what I am looking for. I have experience also doing development in a SQL Server environment.

    My question is... what is the best method of teaching myself the ins and outs of Oracle Database Development, based upon my current comfort and skill level? I don't want to start at square one. Can someone recommend a book... or a class... or some online training that I can utilize to teach myself what I want to learn?

    Any and all input is appreciated... with the exception of telling me how horrible Oracle is and that I should run as fast as I can. 🙂

    Thanks.



  • @jpaull said:

    I am generally a .NET Developer, but have come to the realization that the best way to move ahead at my current job is to learn Oracle PL/SQL Development (Procedures, Functions, Views, etc.). My SQL skills are generally good. I can run a query against our Oracle databases and 95% of the time find what I am looking for. I have experience also doing development in a SQL Server environment.

    My question is... what is the best method of teaching myself the ins and outs of Oracle Database Development, based upon my current comfort and skill level? I don't want to start at square one. Can someone recommend a book... or a class... or some online training that I can utilize to teach myself what I want to learn?

    Any and all input is appreciated... with the exception of telling me how horrible Oracle is and that I should run as fast as I can. 🙂

    Thanks.

    Practice more and more. The best way is to get well-armed with good books. Tom Kite has write several books and you can choose any one of them.



  • @jpaull said:

    My SQL skills are generally good. I can run a query against our Oracle databases and 95% of the time find what I am looking for.
     

    Have you looked at other keywords and functionality of SQL? Things like aggregate functions, CUBE, ROLLUP, CASE/DECODE - all of these could be required when writing SPs.

    nb: views I don't consider PL/SQL. Triggers, SPs and functions, yup.



    1. Remember that the empty string is null. The fallout from that is non-obvious, it runs counter to the SQL spec (not that the SQL spec is worth the paper it's printed on), and results in a lot of pain and broken queries. Especially if you're coming from Microsoft SQL Server.

    2. I'd say the fact that you're here asking these questions already puts you near the top of the stack as far as database administration goes. You might not be able to sell yourself to the greybeard Oracle DBAs, but feel confident that you can solve the problems that come along as they come along.

    Given that, I kind of agree with Nagesh: get a hold of a development Oracle server, dive right in and start working in it. As for training websites or courses, I can't help there.



  • @blakeyrat said:

    1. Remember that the empty string is null.

    Wait, they actually do that in Oracle?  But the point of null in a DB is you don't know, which is different from knowing it's empty string.  I guess doing crap like that is why everyone rags on Oracle, isn't it?



  • I wasn't ragging on Oracle because we're not allowed to do that in this thread.

    But yes, Oracle does do that and it's awful. <- not ragging



  • Awesome.

    Thanks for the feedback guys. It gives me a starting place.



  • @locallunatic said:

    @blakeyrat said:

    1. Remember that the empty string is null.

    Wait, they actually do that in Oracle?

     

    Yup. The empty string is NULL.

    @locallunatic said:

    But the point of null in a DB is you don't know, which is different from knowing it's empty string.

    You know that. I know that. Everying else knows that. Apart from Ol' Larry.

    So clearly having oodles of cash permits you to view the world differently.

    @locallunatic said:

    I guess doing crap like that is why everyone rags on Oracle, isn't it?

    It's not the only reason. You want more?

     




  • One thing that's actually nice with Oracle is doing hierarchical queries. The key things to look for (just search around) are CONNECT BY, PRIOR, START WITH. This is probably my favorite proprietary Oracle extension of SQL.

    For most things you do as a developer, there won't be a major difference compared to other RDBMSes, though one thing you may miss is things like SELECT TOP N.

    The empty string is null thing has never really been a problem for me. Logically, it's weird, of course, but in practice it hasn't been difficult to deal with.



  • @Cassidy said:

    @locallunatic said:

    I guess doing crap like that is why everyone rags on Oracle, isn't it?

    It's not the only reason. You want more?

    I realize that there is a reason for Oracle to have it's special spot of hate, I just didn't realize that it was do to ignoring both SQL spec and the conceptual setup that it was built on.



  • Another difference in Oracle and SQL Server is SQL Server want you to commit as quickly as possible. Not so with oracle. No need to commit, because reader never block writer and writer never block reader.



  • @Nagesh said:

    No need to commit, because reader never block writer and writer never block reader.
     

    I take it you don't know that this default behaviour in MS-SQL Server has changed now?



  • @Cassidy said:

    @Nagesh said:

    No need to commit, because reader never block writer and writer never block reader.
     

    I take it you don't know that this default behaviour in MS-SQL Server has changed now?

    We are using SQL 2005 in our work. Hopeing to go to Sql 2008. Is that changed now? or do I need to wait till 2012? i am not too fond of any database. prefer to work with Hibernet. we use db to just make sure that our data is going to right tables. query purpose. then there is that thing called reports. for that we make direct db connections and fetch them.



  • @Nagesh said:

    We are using SQL 2005 in our work. Hopeing to go to Sql 2008. Is that changed now?
     

    AFAIK, it's a customisable setting in SQL Server (2003?) but off in earlier versions, meaning writers would block readers to prevent dirty reads and some DBAs flicked dirty reads on.

    In later versions (2005?) dirty reads was enabled by default.

    I don't deal with MS-SQL so don't know the full details - I heard it second-hand from a MS-SQL DBA.

    @Nagesh said:

    then there is that thing called reports. for that we make direct db connections and fetch them.

    Look at decoupling that somehow - either with views or stored procedures if you're not going down the ORM route. Connecting reports directly to tables introduces dependency issues.



  • @Cassidy said:

    @Nagesh said:

    We are using SQL 2005 in our work. Hopeing to go to Sql 2008. Is that changed now?
     

    AFAIK, it's a customisable setting in SQL Server (2003?) but off in earlier versions, meaning writers would block readers to prevent dirty reads and some DBAs flicked dirty reads on.

    In later versions (2005?) dirty reads was enabled by default.

    I don't deal with MS-SQL so don't know the full details - I heard it second-hand from a MS-SQL DBA.

    @Nagesh said:

    then there is that thing called reports. for that we make direct db connections and fetch them.

    Look at decoupling that somehow - either with views or stored procedures if you're not going down the ORM route. Connecting reports directly to tables introduces dependency issues.


    Yes there are plenty of dependency issues. This is a legacy application. Atleast report part. it runs as a servlet and nobody want to change it. so we are stuck with it. our system is crude but it work. the report queries are in files and the servlet access these files to produce html report. The files are also in the servlet, but this make it easy to modify the report. Open the file and change the query. That change the report. 🙂



  • You should be aware that Oracle's PL/SQL is a powerful programming language in the style of ADA, which can be used to write large parts of applications. For example, one application I'm maintaining consists of ~30K lines of PL/SQL code (mostly business logic) and ~5K of Java Code for the GUI frontend. As a PL/SQL programmer, you should not only know how to write SQL queries and stuff, but also know how to create packages, which standard packages Oracle provides (UTL_FILE etc.), and, as applications grow larger, how to manage the code.

    Since your background is .net, at first you will probably be intimidated by the P in PL/SQL - PL/SQL is procedural, not object oriented; there are some language features for (a bit of) OO programming, though.



  • If you are interested to learn Oracle by yourself than i want to suggest you that you have to use online tutorial site that the best way to learn Oracle by yourself. You can use youtube video tutorial site that give you lots of good video tutorial for learn Oracle. You have to do mote and more practice to learn Oracle and be good developer.



  • @annahussy said:

    If you are interested to learn Oracle by yourself than i want to suggest you that you have to use online tutorial site that the best way to learn Oracle by yourself. You can use youtube video tutorial site that give you lots of good video tutorial for learn Oracle. You have to do mote and more practice to learn Oracle and be good developer.
     

     

    Youtube? Are you serius?


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.