Showing posts with label Oracle. Show all posts
Showing posts with label Oracle. Show all posts

Tuesday, 21 April 2015

Tips for using Oracle (for beginner)

Useful SQL statements

get all the tables

SELECT * FROM TAB ORDER BY TNAME

get all the columns 

select * from col where tname = '<table name>' ORDER BY colno

Return Top n records (Select Top 1 * in MS SQL)

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Concatenation Operator 

  • ||

IF THEN ELSE ELSIF END IF example

     IF (...) THEN
          ...;
     ELSIF (...) THEN
          ...;
     ELSE
          ...;
     END IF;

GetDate() (in MS SQL)

  •     sysdate

Table DUAL

A dummy table with a single record used for selecting when you're not actually interested in the data, but instead want the results of some system function in a select statement:

  •     select sysdate from dual;

Sequence

Open
to see the defination (Last number too)
Get next value
<sequence_name>.NEXTVAL;

INSERT INTO <table>
(<col1>, <col2>)
VALUES
(<seq_name>.NEXTVAL, 'xxx');

you can't use CURRVAL until you have used NEXTVAL at least once in your session.

Data Types

No boolean data type
varchar2 (2K, Oracle8 4K)
number(5,2) - 999.99

Terminology


TerminologyOracleSQL Server

schemadatabase

service namedatabase name

System ID (SID)database name
Storage blockpage
Extentuser-definedfixed at 8 pages
Storage management pages (SMP)dictionary or locallocal only
Metadatadata dictionarySYS database
Recursive SQLconnect by clauseHierarchyID data type
LanguagePL/SQLT-SQL

For Loop and with / as a Cursor

FOR i IN 1..10
LOOP
...
END LOOP;

--------------------------------
FOR iRec IN (SELECT * FROM <table> WHERE <field> = <value>)LOOP
...
END LOOP;

--------------------------------
CURSOR <cursor name> IS
    <sql statement>

BEGIN
    FOR <item> IN <cursor name>
        LOOP
            ...
        END LOOP;
END;

--------------------------------
can pass a parameter:

CURSOR <cursor name> (<parameter> VARCHAR2) IS
    <sql statement>
BEGIN
    FOR <item> IN <cursor name>(<parameter>)
        LOOP
            ...
        END LOOP;
END;