= Oracle =

http://docs.oracle.com/cd/B19306_01/index.htm

JDBC driver for JDK 1.6 (ojdbc6.jar): http://download.oracle.com/otn/utilities_drivers/jdbc/11204/ojdbc6.jar

== Maven local repository install ==
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true

{{{#!highlight xml
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
}}}

== Get schemas in DB ==
{{{#!highlight sql
SELECT DISTINCT USERNAME FROM DBA_USERS;
}}}

== Get columns from table ==
{{{#!highlight sql
SELECT * FROM ALL_IND_COLUMNS WHERE TABLE_NAME='XYZ';
SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME='AAA';
}}}

== Get indexes from table ==
http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_1069.htm

{{{#!highlight sql
SELECT index_name, table_owner, table_name, uniqueness FROM USER_INDEXES WHERE table_name = 'XYZ';
SELECT index_name, table_owner, table_name, uniqueness FROM ALL_INDEXES WHERE table_name = 'XYZ';
}}}

== Get code from stored procedure ==
{{{#!highlight sql
SELECT * FROM all_source WHERE name = 'myprocedure'
ORDER BY owner,name,line
}}}

== Show schema and table ==
{{{#!highlight sql
SELECT distinct owner,table_name 
FROM all_tables
ORDER BY owner,table_name;
}}}

== Partinioning ==
http://www.orafaq.com/wiki/Interval_partitioning

http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_admin005.htm

http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_admin002.htm

{{{#!highlight sql
select table_name,partition_name,num_rows
from user_tab_partitions
where table_name='TEST';
}}}

Other views:
 * DBA_TAB_PARTITIONS
 * ALL_TAB_PARTITIONS
 * USER_TAB_PARTITIONS

== Sequence creation ==
{{{#!highlight sql
CREATE SEQUENCE sample_seq  START WITH 1 INCREMENT BY 1;
CREATE SEQUENCE sample_seq2 MINVALUE 1 START WITH 1 INCREMENT BY 1;
SELECT * FROM ALL_SEQUENCES; -- show all sequences
}}}

== Sequence usage sample ==
{{{#!highlight sql
-- table creation
CREATE TABLE Employee 
( idEmployee number(12), name varchar2(255), lastName varchar2(255),
constraint pkIdEmployee PRIMARY KEY(idEmployee)
);
-- sequence creation
CREATE SEQUENCE seqEmplyee 
start with 1 increment by 1 minvalue 1 maxvalue 65536;
-- insert values
INSERT INTO Employee (idEmployee,name,lastName) 
values(seqEmplyee.nextval,'Bart','Simpson'); 
INSERT INTO Employee (idEmployee,name,lastName) 
values(seqEmplyee.nextval,'Peter','Griffin'); 
INSERT INTO Employee (idEmployee,name,lastName) 
values(seqEmplyee.nextval,'Homer','Simpson'); 
-- check sequence current value
SELECT seqEmplyee.currval FROM dual;
}}}

== User and table space creation in Oracle XE ==
{{{#!highlight sql
-- login with system user
create tablespace christs datafile 'c:\christs.dbf' size 100m;
create user chris identified by 12345678 default tablespace christs;
alter user chris quota unlimited on christs;
grant create session to chris;
grant create table to chris;

-- login with user chris
create table CHRIS.test ( name varchar(255) ) tablespace chris;
insert into CHRIS.test (name) values('Test name 1234');

-- login with system user
-- user alice to just run selects
create user alice identified by 12345678 default tablespace christs;
grant create session to alice;
grant select on CHRIS.test to alice;

-- login with alice
select * from CHRIS.test;

}}}

== Oracle Database 11g Express Edition ==
Download from [[ http://www.oracle.com/technetwork/database/database-technologies/express-edition/overview/index.html | Oracle site ]]
 * Run setup.exe
 * Next
 * Accept
 * Next
 * c:\oraclexe
 * Port TNS 1521
 * Port MTS 2030
 * Port Http 8081
 * Next
 * For user sys and system password ********
 * Next
 * Install
 * Finish

=== Info ===
 * Default SID xe . 
 * Default JDBC driver JAR ojdbc6.jar .
 * JDBC Url jdbc:oracle:thin:@//localhost:1521/XE