SQL> exec sample_font
|
|
- Harriet Day
- 6 years ago
- Views:
Transcription
1 NOTE itty bitty fonts in this presentation SQL> exec sample_font Can you read this? 1
2 2
3 Connor McDonald OracleDBA co.uk 3
4 4
5 5 about me
6 same old crap about years of experience flog the book hook up a consulting gig awards 6
7 this is NOT a best practice talk 7
8 best practice 8
9 best practice 9
10 practice, practice, practice
11 11 what we're doing
12 why SQL favourites Analytics Model clause 12
13 why talk about SQL (part 1) 13
14 14 true story
15 15 SOA project
16 C#, C++ OSB Weblogic Tuxedo 16
17 17
18 18
19 19 huh?
20 DEPT EMP deptadapter = new OracleDataAdapter(); deptadapter.selectcommand = new OracleCommand( "SELECT * FROM DEPT",conn); deptdataset = new DataSet("deptDataSet"); deptadapter.fill( deptdataset, "dept"); empadapter = new OracleDataAdapter(); empadapter.selectcommand = new OracleCommand( "SELECT * FROM EMP",conn); empdataset = new DataSet("empDataSet"); empadapter.fill( empdataset, "emp"); 20
21 21 SQL> select... 2 from DEPT d, 3 EMP e 4 where d.deptno = e.deptno
22 22 "wow"
23 23 SQL is getting simpler
24 Code 1985 Value SQL 24 m/f c/s web soa
25 Code Value SQL 25 m/f c/s web soa
26 26
27 27
28 "Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks." 28
29 29
30 30
31
32 why talk about SQL (part 2) 32
33 we suck at relational......technically 33
34 34 not our fault
35 35 Codd & Date
36 36 "data is represented as mathematical n-ary relations, an n-ary relation being a subset of the Cartesian product of n domains."
37 37 huh?
38 we excel at relational......in the real world 38
39 39 shopping
40 40 in the real world
41 efficient drive to shop; pick up items; pay for items; drive home; maybe fill up with petrol; maybe pick up a newspaper; value add 41
42 42 in the technical world
43 Shopping v1.0 subroutine PURCHASE_ITEM(item_id) - drive to shop - obtain item - pay for item - drive home Shopping v2.0 for each_item in LIST_OF_ITEMS do purchase_item; end loop; ORA-20000: No petrol found at supermarket 43 Shopping v2.1
44 business analysts... procedural analysis 44
45 technical analysts... procedural specifications 45
46 programmers procedural programs 46
47 why talk about SQL (part 3) 47
48 48
49 49
50 50 Warning: gratuitous book plug!!!
51 why talk about SQL (part 4) 51
52 3GL's suck... for database 52
53 53 too much code, too hard
54 ocmd = New OracleCommand("SELECT productname AS ""Product Name"", description AS ""Description""" & _ ", category AS ""Category"", price AS ""Price"" FROM producttab", conn) ocmd.commandtype = CommandType.Text oreader = ocmd.executereader() C# Dim dt As DataTable = New DataTable("producttab") Dim dcolumn As DataColumn Dim i As Integer Dim count As Integer Dim colname As String Dim coltype As System.Type sbox.appendtext("current FetchSize value is " + oreader.fetchsize.tostring() + " bytes " + Environment.NewLine) sbox.update() 'Get the number of columns in this OracleDataReader count = oreader.fieldcount sbox.appendtext("fetching data with given FetchSize.." + Environment.NewLine) sbox.update() 'Add the columns in the DataTable For i = 0 To count - 1 colname = oreader.getname(i) coltype = oreader.getfieldtype(i) dcolumn = New DataColumn(colname, coltype) dt.columns.add(dcolumn) Next 'Make the first column the primary key column. Dim PrimaryKeyColumns(0) As DataColumn PrimaryKeyColumns(0) = dt.columns("productname") dt.primarykey = PrimaryKeyColumns 'Populate the table While oreader.read() Dim drow As DataRow = dt.newrow() drow(oreader.getname(0)) = oreader.getstring(0) drow(oreader.getname(1)) = oreader.getstring(1) drow(oreader.getname(2)) = oreader.getstring(2) drow(oreader.getname(3)) = oreader.getdecimal(3) dt.rows.add(drow) End While 54
55 import java.sql.* import java.math.* import java.io.* import java.awt.* class JdbcTest { public static void main (String args []) throws SQLException { // Load Oracle driver DriverManager.registerDriver (new oracle.jdbc.oracledriver()); Java // Connect to the local database Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@myhost:1521:orcl", "hr", "password"); // Query the employee names Statement stmt = conn.createstatement (); ResultSet rset = stmt.executequery ("SELECT last_name FROM employees"); // Print the name out while (rset.next ()) System.out.println (rset.getstring (1)); // Close the result set, statement, and the connection rset.close(); stmt.close(); conn.close(); } } 55
56 56 PLSQL the only exception
57 PLSQL Users Guide and Reference line 1 57
58 58 "PL/SQL, Oracle's procedural extension of SQL"
59 59 its all about the SQL
60 60 part 2 my favourites
61 61 subquery factoring
62 62 WITH clause
63 SQL> WITH last_hire AS 2 ( select deptno, max(hiredate) 3 from emp 4 group by deptno 5 ) 6 select * from last_hire; DEPTNO MAX(HIRED DEC JAN JAN-82 63
64 64 "gee...wow"
65 65 why is it cool?
66 66 good solution metaphor
67 "First, get the total salary paid by department... SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 67
68 "...then get the average of these totals... 6 avg_sal AS ( SELECT AVG(dept_sal) avsal 7 FROM dept_salaries) 68
69 "...then list those departments above average." 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.avsal 10 ORDER BY d.dname; 69
70 SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) avsal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.avsal 10 ORDER BY d.dname; 70
71 71 procedural approach...
72 72...relational solution
73 73 things to note...
74 74 execution plan
75 75 two possibilities
76 76 temporary storage
77 Id Operation Name SELECT STATEMENT 1 TEMP TABLE TRANSFORMATION 2 LOAD AS SELECT 3 HASH GROUP BY 4 MERGE JOIN 5 TABLE ACCESS BY INDEX ROWID DEPT 6 INDEX FULL SCAN PK_DEPT 7 SORT JOIN 8 TABLE ACCESS FULL EMP 9 SORT ORDER BY 10 NESTED LOOPS 11 VIEW 12 SORT AGGREGATE 13 VIEW 14 TABLE ACCESS FULL SYS_TEMP_0FD9D6624_AF422F5 15 VIEW 16 TABLE ACCESS FULL SYS_TEMP_0FD9D6624_AF422F
78 SQL> alter session set sql_trace = true; Session altered. SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname; DNAME DEPT_SAL ASAL RESEARCH SQL> alter session set sql_trace = false; Session altered. 78
79 PARSING IN CURSOR #12 len=179 dep=1 uid=0 oct=1... CREATE GLOBAL TEMPORARY TABLE "SYS"."SYS_TEMP_0FD9D6625_AF422F5" ("C0" VARCHAR2(14),"C1" NUMBER ) IN_MEMORY_METADATA CURSOR_SPECIFIC_SEGMENT STORAGE (OBJNO ) NOPARALLEL END OF STMT 79
80 80 no temporary storage
81 Id Operation Name SELECT STATEMENT 1 SORT ORDER BY 2 NESTED LOOPS 3 VIEW 4 SORT AGGREGATE 5 VIEW 6 HASH GROUP BY 7 MERGE JOIN 8 TABLE ACCESS BY INDEX ROWID DEPT 9 INDEX FULL SCAN PK_DEPT 10 SORT JOIN 11 TABLE ACCESS FULL EMP 12 VIEW 13 SORT GROUP BY 14 MERGE JOIN 15 TABLE ACCESS BY INDEX ROWID DEPT 16 INDEX FULL SCAN PK_DEPT 17 SORT JOIN 18 TABLE ACCESS FULL EMP
82 82 explicit control
83 83 SQL> WITH dept_salaries AS ( 2 SELECT /*+ INLINE */ dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname;
84 84 SQL> WITH dept_salaries AS ( 2 SELECT /*+ MATERIALIZE*/ dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname;
85 85 undocumented... sort of
86 86 useful control over optimizer
87 87 useful control over database links
88 take care within a view metalink bug
89 89 take care in read-only standby
90
91 91
92 92 more on that shortly...
93 93 favourite ( prep work )
94 94 hierarchy queries
95 SQL> select empno, ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS FORD BLAKE WARD MARTIN TURNER JAMES CLARK MILLER
96 SQL> select empno, rpad(' ',level*3) ename ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS FORD BLAKE WARD MARTIN TURNER JAMES CLARK MILLER
97 97
98 98 much much more...
99 99 "its too slow"
100 SQL> create table EMP_DUPS 2 as select * 3 from 4 ( select level seq 5 from DUAL 6 connect by level <= 10 ), 7 EMP 8 / Table created. 100
101 SQL> create table EMP_DUPS 2 as select * 3 from 4 ( select level seq 5 from DUAL 6 connect by level <= 10 ), 7 EMP 8 / Table created. 101
102 SQL> select level seq 2 from DUAL 3 connect by level <= 10 4 / SEQ
103 103 any number of rows
104 SQL> select level seq 2 from DUAL 3 connect by level <= 10; Id Operation Name Rows SELECT STATEMENT 1 * 1 CONNECT BY WITHOUT FILTERING 2 FAST DUAL Statistics recursive calls 0 db block gets 0 consistent gets 0 physical reads 104
105 105 "free"
106 106 take care with extremes
107 SQL> select level seq 2 from DUAL 3 connect by level <= ; ERROR at line 1: ORA-04030: out of process memory when... SQL> select name, value 2 from v$statname n, 3 v$sesstat s 4 where n.statistic# = s.statistic# 5 and n.name in ('session uga memory', 6 'session pga memory') 7 and s.sid = 130; NAME VALUE session uga memory session pga memory
108 select rownum from ( select level from dual connect by level <= ), ( select level from dual connect by level <= ), ( select level from dual connect by level <= ) Acknowledgement: Tanel Poder 108
109 SQL> select count(*) from EMP; COUNT(*) SQL> select count(*) from EMP_DUPS; COUNT(*)
110 110 SQL> select seq, empno, ename, mgr 2 from emp_dups; SEQ EMPNO ENAME MGR KING JONES SCOTT KING JONES SCOTT KING JONES SCOTT rows selected.
111 SQL> select 2 empno, rpad(' ',level*3) ename ename, mgr 3 from emp_dups 4 where seq = 1 5 connect by prior empno = mgr 6 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS ADAMS ADAMS ADAMS 7788 [snip] 2831 rows selected. 111
112 112 SQL> select DISTINCT 2 empno, rpad(' ',level*3) ename ename, mgr 3 from emp_dups 4 where seq = 1 5 connect by prior empno = mgr 6 start with mgr is null; EMPNO ENAME MGR KING 7788 SCOTT BLAKE WARD CLARK ADAMS TURNER JONES MARTIN MILLER
113 SQL> select empno, rpad(' ',level*3) ename ename, mgr 2 from emp_dups 3 where hire_date seq = 1 > '01-JAN-2009' 4 connect by prior empno = mgr 5 and prior seq = seq 6 start with mgr is null 7 and seq = 1; 113
114 114 "its too slow"
115 115 lots more...
116 SQL> select SYS_CONNECT_BY_PATH(ename,'-') full_tree 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr FULL_TREE KING -KING-BLAKE -KING-BLAKE-JAMES -KING-BLAKE-ALLEN -KING-BLAKE-WARD -KING-CLARK -KING-CLARK-MILLER
117 SQL> select rpad(' ',level) sys_connect_by_path(ename,'-'), 2 empno, dname 3 from emp e, dept d 4 where d.deptno = e.deptno 5 start with mgr is null 6 connect by prior empno = mgr FULL_TREE EMPNO DNAME KING 7839 ACCOUNTING -KING-BLAKE 7698 SALES -KING-BLAKE-JAMES 7499 SALES -KING-BLAKE-ALLEN 7900 SALES -KING-BLAKE-WARD 7521 SALES -KING-CLARK 7782 ACCOUNTING -KING-CLARK-MILLER 7934 ACCOUNTING
118 SQL> select rpad(' ',level) sys_connect_by_path(ename,'-'), 2 empno, dname 3 from emp e, dept d 4 where d.deptno = e.deptno 5 start with mgr is null 6 connect by prior empno = mgr 7 ORDER SIBLINGS BY ENAME FULL_TREE EMPNO DNAME KING 7839 ACCOUNTING -KING-BLAKE 7698 SALES -KING-BLAKE-ALLEN 7499 SALES -KING-BLAKE-JAMES 7900 SALES -KING-BLAKE-WARD 7521 SALES -KING-CLARK 7782 ACCOUNTING -KING-CLARK-MILLER 7934 ACCOUNTING
119 119 "fine for EMP, my data is crap"
120 120
121 SQL> update emp set mgr = where ename = 'KING'; 1 row updated. SQL> select sys_connect_by_path(ename,'-') 2 from emp 3 start with ename = 'KING' 4 connect by prior empno = mgr 5 / ERROR: ORA-01436: CONNECT BY loop in user data 121
122 SQL> select sys_connect_by_path(ename,'-') 2 from emp 3 start with ename = 'KING' 4 connect by NOCYCLE prior empno = mgr 5 / SYS_CONNECT_BY_PATH(ENAME,'-') KING -KING-JONES -KING-JONES-SCOTT -KING-JONES-SCOTT-ADAMS -KING-JONES-FORD -KING-JONES-FORD-SMITH -KING-BLAKE
123 123 and still more...
124 SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1000,'DENNIS',null, 10); 1 row created. SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1001,'CHRIS',1000, 10); 1 row created. SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1002,'CRAIG',1001, 10); 1 row created. 124
125 SQL> select sys_connect_by_path(ename,'-') full_tree 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr FULL_TREE KING -KING-BLAKE -KING-BLAKE-JAMES -KING-BLAKE-ALLEN -KING-BLAKE-WARD -KING-CLARK -KING-CLARK-MILLER -DENNIS -DENNIS-CHRIS -DENNIS-CHRIS-CRAIG am I a manager? who is my ultimate boss? 125
126 Who is top dog in my tree? SQL> select 2 connect_by_root ename, Am I a leaf node? 3 connect_by_isleaf, 4 connect_by_iscycle 5 from emp 6 start with mgr is null 7 connect by NOCYCLE prior empno = mgr 8 / Am I within a cycle? 126
127 SQL> select connect_by_root ename root, 2 connect_by_isleaf leaf, 3 connect_by_iscycle cyc, 4 sys_connect_by_path(ename,'-') full 5 from emp 6 start with ename in ('KING','DENNIS') 7 connect by NOCYCLE prior empno = mgr; ROOT LEAF CYC FULL KING 0 0 -KING KING 0 0 -KING-JONES KING 0 0 -KING-JONES-SCOTT KING 1 0 -KING-JONES-SCOTT-ADAMS KING 0 0 -KING-JONES-FORD KING 1 0 -KING-JONES-FORD-SMITH KING 0 0 -KING-BLAKE KING 1 1 -KING-BLAKE-ALLEN KING 1 0 -KING-BLAKE-WARD KING 1 0 -KING-BLAKE-MARTIN KING 1 0 -KING-BLAKE-TURNER KING 1 0 -KING-BLAKE-JAMES DENNIS 0 0 -DENNIS DENNIS 0 0 -DENNIS-CHRIS DENNIS 1 0 -DENNIS-CHRIS-CRAIG 127
128 128 "old style" hierarchy still cool...
129 has a new way...
130 130 first principles
131 SQL> select rpad(' ',level) ename, 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr ENAME KING BLAKE JAMES ALLEN WARD CLARK MILLER 131
132 SQL> select empno, ename, mgr 2 from emp 3 where mgr is null; EMPNO ENAME MGR KING 132
133 SQL> select e2.empno, e2.ename, e2.mgr 2 from emp e2, 3 ( select empno, mgr 4 from emp 5 where mgr is null ) inner 6 where e2.mgr = inner.empno; EMPNO ENAME MGR JONES BLAKE CLARK
134 SQL> select e3.empno, e3.ename, e3.mgr 2 from emp e3, 3 ( select e2.empno, e2.ename, e2.mgr 4 from emp e2, 5 ( select empno, mgr 6 from emp 7 where mgr is null ) inner 8 where e2.mgr = inner.empno ) inner 9 where e3.mgr = inner.empno; EMPNO ENAME MGR FORD SCOTT JAMES TURNER MARTIN WARD MILLER
135 SQL> select e4.empno, e4.ename, e4.mgr 2 from emp e4, 3 ( select e3.empno, e3.ename, e3.mgr 4 from emp e3, 5 ( select e2.empno, e2.ename, e2.mgr 6 from emp e2, 7 ( select empno, mgr 8 from emp 9 where mgr is null ) inner 10 where e2.mgr = inner.empno ) inner 11 where e3.mgr = inner.empno ) inner 12 where e4.mgr = inner.empno; EMPNO ENAME MGR ADAMS recursive...
136 136
137 137 WITH can be recursive
138 138 SQL> with EACH_LEVEL (empno, name, mgr) as 2 ( start with select empno, ename, mgr 6 from emp 7 where mgr is null connect by union all 12 select emp.empno, emp.ename, emp.mgr 13 from emp, EACH_LEVEL 14 where emp.mgr = each_level.empno 15 ) 16 select * 17 from each_level;
139 EMPNO NAME MGR KING 7566 JONES BLAKE CLARK ALLEN WARD MARTIN SCOTT TURNER JAMES FORD MILLER SMITH ADAMS
140 140 two part structure
141 with RECURSIVE_WITH (c1,c2,c3) as ( <starting/entry point> union all <recursive relationship> ) select... from RECURSIVE_WITH 141
142 142 you control pseudo- functions
143 SQL> with each_level (empno, name, mgr, rlevel) as 2 ( select empno, ename, mgr, 1 rlevel 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, rlevel+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select * from each_level; EMPNO NAME MGR RLEVEL KING JONES BLAKE CLARK ALLEN <etc> 143
144 SQL> with each_level (empno, name, mgr, level) as 2 ( select empno, ename, mgr, 1 level 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, level+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select empno, name, mgr, level from each_level; with each_level (empno, name, mgr, level) as * ERROR at line 1: ORA-00904: : invalid identifier 144
145 145 SQL> with each_level (empno, name, mgr, rlevel) as 2 ( select empno, ename, mgr, 1 rlevel 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, rlevel+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select empno, name, mgr, rlevel as "LEVEL" 11 from each_level;
146 SQL> with each_level (empno, name, mgr, padding) as 2 ( select empno, ename, mgr, '' padding 3 from emp 4 where mgr is null 5 union all 6 select e.empno, e.ename, e.mgr, padding ' ' 7 from emp e, each_level 8 where e.mgr = each_level.empno 9 ) 10 select empno, padding name name 11 from each_level; ERROR: ORA-01489: result of string concatenation is too long 146
147 SQL> with each_level (empno, name, mgr, padding) as 2 ( select empno, ename, mgr, 3 cast('' as varchar2(100)) padding 4 from emp 5 where mgr is null 6 union all 7 select e.empno, e.ename, e.mgr, padding ' ' 8 from emp e, each_level 9 where e.mgr = each_level.empno 10 ) 11 select empno, padding name name 12 from each_level; EMPNO NAME KING 7566 JONES
148 148 SQL> with each_level (empno, name) as 2 ( select empno, ename from emp 3 where mgr is null 4 union all 5 select e.empno, 6 each_level.name '-' e.ename 7 from emp e, each_level 8 where e.mgr = each_level.empno 9 ) 10 select empno, name from each_level; EMPNO NAME KING 7566 KING-JONES 7698 KING-BLAKE 7782 KING-CLARK 7499 KING-BLAKE-ALLEN 7521 KING-BLAKE-WARD <etc>
149 149 cycle detection as before...
150 SQL> update emp set mgr = where ename = 'KING'; 1 row updated. SQL> select empno, rpad(' ',level) ename ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with ename = 'KING'; ERROR: ORA-01436: CONNECT BY loop in user data 150
151 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr 3 from emp 4 where ename = 'KING' 5 union all 6 select emp.empno, emp.ename, emp.mgr 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select * 11 from each_level; ERROR: ORA-32044: cycle detected while executing recursive WITH query 151
152 152...but the results are different
153 SQL> select empno, ename, mgr, 2 connect_by_iscycle 3 from emp 4 connect by NOCYCLE prior empno = mgr 5 start with ename = 'KING'; EMPNO ENAME MGR CONNECT_BY_ISCYCLE KING JONES BLAKE ALLEN WARD MARTIN [snip] 14 rows selected. 153
154 154 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr from emp 3 where ename = 'KING' 4 union all 5 select emp.empno, emp.ename, emp.mgr 6 from emp, each_level 7 where emp.mgr = each_level.empno ) 8 CYCLE mgr SET is_cycle TO 'Y' DEFAULT 'N' 9 select * from each_level; EMPNO NAME MGR IS_CYCLE KING 7499 N 7566 JONES 7839 N 7521 WARD 7698 N 7839 KING 7499 Y 7876 ADAMS 7788 N [snip] 15 rows selected.
155 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr from emp 3 where ename = 'KING' 4 union all 5 select emp.empno, emp.ename, emp.mgr 6 from emp, each_level 7 where emp.mgr = each_level.empno 8 ) 9 CYCLE mgr SET is_cycle TO 'YES' DEFAULT 'NO' 10 select * from each_level; * ERROR at line 9: ORA-32047: cycle mark value and non-cycle mark value must be one byte character string values 155
156 156 some nice touches...
157 SQL> with each_level (empno, name, hiredate, mgr) as 2 ( select empno, ename, hiredate, mgr from emp 3 where ename = 'KING' 4 union all 5 select e.empno, 6 each_level.name '-' e.ename, e.hiredate, e.mgr 7 from emp e, each_level 8 where e.mgr = each_level.empno ) 9 SEARCH BREADTH FIRST BY HIREDATE SET IDX 10 select name, hiredate, idx from each_level; NAME HIREDATE IDX KING 17-NOV-81 1 KING-JONES 02-APR-81 2 KING-BLAKE 01-MAY-81 3 KING-CLARK 09-JUN-81 4 KING-BLAKE-ALLEN 20-FEB-81 5 KING-BLAKE-WARD 22-FEB-81 6 [snip] KING-JONES-FORD-SMITH 17-DEC KING-JONES-SCOTT-ADAMS 23-MAY
158 SQL> with each_level (empno, name, hiredate, mgr) as 2 ( select empno, ename, hiredate, mgr from emp 3 where ename = 'KING' 4 union all 5 select e.empno, 6 each_level.name '-' e.ename, e.hiredate, e.mgr 7 from emp e, each_level 8 where e.mgr = each_level.empno ) 9 SEARCH DEPTH FIRST BY HIREDATE SET IDX 10 select name, hiredate, idx from each_level; NAME HIREDATE IDX KING 17-NOV-81 1 KING-JONES 02-APR-81 2 KING-JONES-FORD 03-DEC-81 3 KING-JONES-FORD-SMITH 17-DEC-80 4 KING-JONES-SCOTT 19-APR-87 5 KING-JONES-SCOTT-ADAMS 23-MAY-87 6 KING-BLAKE 01-MAY-81 7 KING-BLAKE-ALLEN 20-FEB-81 8 etc 158
159 159 performance
160 1,2,3,4,5,6,7,8,9 11,12,13,14,15,16,17,18,19 21,22,23,24,25,26,27,28,29 111,112,113,114,115,116,117,118,119 etc... 5,380,839 rows 160
161 161 need a big hierarchy
162 SQL> create table BIG_HIER nologging as 2 with hier(x,y, lev) as 3 ( select rownum x,null y,1 lev 4 from dual connect by level < 10 5 union all 6 select 10*x+p, x, lev+1 7 from hier, 8 ( select level p from dual 9 connect by level < 10 ) 10 where lev < 7 11 ) 12 select * from hier; Table created. 162
163 SQL> begin 2 dbms_stats.gather_table_stats(user,'big_hier'); 3 end; PL/SQL procedure successfully completed. SQL> create index IX1 on BIG_HIER ( x ); Index created. SQL> create index IX2 on BIG_HIER ( y ); Index created. 163
164 SQL> select * 2 from big_hier 3 start with y is null 4 connect by prior x = y; Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 CONNECT BY WITH FILTERING 2 TABLE ACCESS FULL BIG_HIER (1) 3 NESTED LOOPS (1) 4 CONNECT BY PUMP 5 TABLE ACCESS BY INDEX ROWID BIG_HIER 9 3 (0) 6 INDEX RANGE SCAN IX2 9 2 (0)
165 SQL> with bench(x,y,lev) as 2 ( select x,y, lev from big_hier 3 where y is null 4 union all 5 select h.x,h.y,h.lev 6 from big_hier h, bench b 7 where h.y = b.x ) 8 select * from bench; Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 VIEW (1) 2 UNION ALL (RECURSIVE WITH) BREADTH FIRST 3 TABLE ACCESS FULL BIG_HIER (1) 4 NESTED LOOPS 5 NESTED LOOPS (1) 6 RECURSIVE WITH PUMP 7 INDEX RANGE SCAN IX2 9 2 (0) 8 TABLE ACCESS BY INDEX ROWID BIG_HIER 9 3 (0)
166 SQL> select * 2 from big_hier 3 start with y is null 4 connect by prior x = y; rows selected. Elapsed: 00:04:46.12 Statistics recursive calls db block gets consistent gets physical reads 7 sorts (memory) 2 sorts (disk) 166
167 SQL> with bench(x,y,lev) as 2 ( select x,y, lev from big_hier 3 where y is null 4 union all 5 select h.x,h.y,h.lev 6 from big_hier h, bench b 7 where h.y = b.x ) 8 select * from bench; rows selected. Elapsed: 00:04: Statistics recursive calls db block gets consistent gets physical reads 7 sorts (memory) 1 sorts (disk)
168 get used to it... ANSI 168
169 169 favourite: query blocks
170 C#, C++ OSB Tuxedo Weblogic PL/SQL 170
171 for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { maxdivisor = Math.Max(maxDivisor, WinningCombinations[i].Divisor); } } for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { WinningCombinations[i].Divisor = maxdivisor / WinningCombinations[i].Divisor; sumnewdivisors += WinningCombinations[i].Divisor; } } 171
172 172 no comments
173 173
174 174 "C# is self-documenting"
175 for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { maxdivisor = Math.Max(maxDivisor, WinningCombinations[i].Divisor); } } for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { WinningCombinations[i].Divisor = maxdivisor / WinningCombinations[i].Divisor; sumnewdivisors += WinningCombinations[i].Divisor; } } 175
176 for (int i = 0; i < w.count; ++i) { if (w[i].v > 0 && w[i].p > mddh) { m = Math.Max(m, w[i].d); } } for (int i = 0; i < w.count; ++i) { if (w[i].v > 0 && w[i].p > mddh) { w[i].d = m / w[i].d; s += w[i].d; } } 176
177 query blocks = self- documenting SQL 177
178 select emp.* from emp, ( select trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 178
179 179 Id Operation Name SELECT STATEMENT 1 HASH JOIN 2 TABLE ACCESS BY INDEX ROWID EMP 3 NESTED LOOPS 4 VIEW 5 SORT GROUP BY 6 TABLE ACCESS BY INDEX ROWID EMP 7 INDEX FULL SCAN E2 8 INDEX RANGE SCAN E1 9 VIEW 10 SORT GROUP BY 11 TABLE ACCESS BY INDEX ROWID EMP 12 INDEX RANGE SCAN E2
180 select emp.* from emp, ( select /*+ QB_NAME(YR_HIRE) */ trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select /*+ QB_NAME(AV_SAL) */ deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 180
181 Id Operation Name Query Block SELECT STATEMENT 1 HASH JOIN SEL$1 2 TABLE ACCESS BY INDEX ROWID EMP SEL$1 3 NESTED LOOPS 4 VIEW AV_SAL 5 SORT GROUP BY AV_SAL 6 TABLE ACCESS BY INDEX ROWID EMP AV_SAL 7 INDEX FULL SCAN E2 AV_SAL 8 INDEX RANGE SCAN E1 SEL$1 9 VIEW YR_HIRE 10 SORT GROUP BY YR_HIRE 11 TABLE ACCESS BY INDEX ROWID EMP YR_HIRE 12 INDEX RANGE SCAN E2 YR_HIRE 181
182 182 assist with query trace
183 SQL> alter session set 2 events = '10053 trace name context forever, level 1'; Session altered. 183
184 ************************** Query transformations (QT) ************************** CBQT: Validity checks passed for 7jpzpr2475cqw. CSE: Sub-expression elimination in query block SEL$1 (#0) ************************* Common Subexpression elimination (CSE) ************************* CSE: CSE not performed on query block YR_HIRE (#0). CSE: Sub-expression elimination in query block AV_SAL (#0) CSE: CSE not performed on query block AV_SAL (#0). CSE: CSE not performed on query block SEL$1 (#0). *************************** Order-by elimination (OBYE) *************************** OBYE: Considering Order-by Elimination from view SEL$1 (#0) 184
185 ********************************* Number of join permutations tried: 1 ********************************* GROUP BY adjustment factor: GROUP BY cardinality: , TABLE cardinality: SORT ressource Sort statistics Sort width: 598 Area size: Max Area: Degree: 1 Blocks to Sort: 1 Row size: 18 Total Rows: 14 Initial runs: 1 Merge passes: 0 IO Cost / pass: 0 Total IO sort cost: 0 Total CPU sort cost: Total Temp space used: 0 Trying or-expansion on query block AV_SAL (#3) Transfer Optimizer annotations for query block AV_SAL (#3) GROUP BY adjustment factor: Final cost for query block AV_SAL (#3) - All Rows Plan: Best join order: 1 Cost: Degree: 1 Card: Bytes: 98 Resc: Resc_io: Resc_cpu: Resp: Resp_io: Resc_cpu:
186 186 assist with hints
187 select /*+ QB_NAME(top) emp (empno)) emp) */ emp.* from emp, ( select /*+ QB_NAME(YR_HIRE) */ trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select /*+ QB_NAME(AV_SAL) */ deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 187
188 select /*+ QB_NAME(top) emp (empno)) emp) */ INDEX(emp emp_ix) 188
189 189 favourite: scalar queries
190 SQL> select 2 ( select dname 3 from dept 4 where deptno = e.deptno ) dname, 5 decode(empno, 7499, 6 ( select max(sal) from emp ), 7-1) 8 from 9 ( select * from emp 10 where sal > 0 ) e 11 where scalar anywhere an expression could be 12 ( select max(hiredate) from emp ) < sysdate 13 / 190
191 191 "big deal"
192 SQL> create or replace 2 function DEMO(p int) return number is 3 begin 4 dbms_lock.sleep(1); 5 return p; 6 end; 7 / Function created. 1,2,3,..., 30 SQL> create table T 2 as select rownum r, mod(rownum,5) r1 from dual 3 connect by level <= 30; Table created. 0,1,2,3,4,0,1,2,3,4,
193 SQL> select r, demo(r1) from T; R DEMO(R1) rows selected. Elapsed: 00:00:
194 SQL> select r, 2 ( select demo(r1) from dual) as res 3 from T; R RES rows selected. Elapsed: 00:00:
195 subquery caching... any subquery 195
196 196 what about multiple values
197 197 SQL> select 2 empno, 3 ( select dname, loc, revenue 4 from dept 5 where deptno = e.deptno ) 6 from EMP e; ( select dname, loc, revenue * ERROR at line 3: ORA-00913: too many values
198 SQL> select 2 empno, 3 ( select dname 4 from dept 5 where deptno = e.deptno ) dname, 6 ( select loc 7 from dept 8 where deptno = e.deptno ) loc, 9 ( select revenue 10 from dept 11 where deptno = e.deptno ) rev 12 from EMP e; 198 EMPNO DNAME LOC REV ACCOUNTING NEW YORK SALES CHICAGO ACCOUNTING NEW YORK RESEARCH DALLAS [snip]
199 199 use a type
200 SQL> create type multi_attrib as object ( 2 dname varchar2(10), 3 loc varchar2(10), 4 rev number ); 5 / Type created. 200
201 SQL> select empno, 2 x.attr.dname, 3 x.attr.loc, 4 x.attr.rev 5 from 6 ( 7 select 8 empno, 9 ( select multi_attrib( 10 dname,loc,revenue) 11 from dept 12 where deptno = e.deptno ) attr 13 from EMP e 14 ) x; EMPNO ATTR.DNAME ATTR.LOC ATTR.REV ACCOUNTING NEW YORK SALES CHICAGO ACCOUNTING NEW YORK
202 subquery caching _query_execution_cache_max_size Source: "Cost Based Oracle" 202
203 203 DML error logging
204 SQL> insert into MY_TABLE 2 select * 3 from MY_WHOPPING_GREAT_FAT_TABLE; Elapsed: 06:12:34.00 ERROR at line 1: ORA-00001: unique constraint (DEMO.WHOPPER_PK) violated 204
205 insert update delete merge 205
206 keeps successful rows logs error rows 206
207 error logging table ERR$_MY_TABLE 207
208 208 SQL> exec DBMS_ERRLOG.CREATE_ERROR_LOG('EMP')
209 SQL> desc ERR$_EMP Name Null? Type ORA_ERR_NUMBER$ NUMBER ORA_ERR_MESG$ VARCHAR2(2000) ORA_ERR_ROWID$ ROWID ORA_ERR_OPTYP$ VARCHAR2(2) ORA_ERR_TAG$ VARCHAR2(2000) EMPNO VARCHAR2(4000) ENAME VARCHAR2(4000) JOB VARCHAR2(4000) MGR VARCHAR2(4000) HIREDATE VARCHAR2(4000) SAL VARCHAR2(4000) COMM VARCHAR2(4000) DEPTNO VARCHAR2(4000) 209
210 Column Name Data Type Description ORA_ERR_NUMBER$ NUMBER Oracle error number ORA_ERR_MESG$ VARCHAR2(2000) Oracle error message text ORA_ERR_ROWID$ ROWID Rowid of the row in error (update and delete only) ORA_ERR_OPTYP$ VARCHAR2(2) Type of operation I = insert, U = update, D = delete ORA_ERR_TAG$ VARCHAR2(2000) User supplied tag 210
211 SQL> select * from NEW_DATA; EMPNO SAL DEPTNO X SQL> 2500 exec dbms_errlog.create_error_log( 50 'EMP' ); PL/SQL procedure successfully completed. SQL> insert into EMP (empno,sal,deptno) 2 select * 3 from NEW_DATA 4 LOG ERRORS REJECT LIMIT UNLIMITED; 1 row created. SQL> select ORA_ERR_OPTYP$ op, ORA_ERR_MESG$, EMPNO 2 from err$_emp OP ORA_ERR_MESG$ EMPNO I ORA-01722: invalid number 100X I ORA-02291: integrity constraint (SCOTT.FK_DEPTNO) violated 2000 I ORA-00001: unique constraint (SCOTT.PK_EMP) violated
212
213 213 IGNORE_ROW_ON_DUPKEY_INDEX
214 total recall 11g 214
215 SQL> create tablespace SPACE_FOR_ARCHIVE 2 datafile 'C:\ORACLE\DB11\ARCH_SPACE.DBF' 3 size 100M; Tablespace created. SQL> CREATE FLASHBACK ARCHIVE longterm 2 TABLESPACE space_for_archive 3 RETENTION 1 YEAR; Flashback archive created. 215
216 SQL> ALTER TABLE EMP FLASHBACK ARCHIVE LONGTERM; Table altered. [lots of DML] SQL> select * from EMP; Id Operation Name Rows Bytes SELECT STATEMENT TABLE ACCESS FULL EMP
217 SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows Bytes SELECT STATEMENT TABLE ACCESS FULL EMP
218 [lots more DML] SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows SELECT STATEMENT VIEW UNION-ALL * 3 FILTER 4 PARTITION RANGE ITERATOR 445 * 5 TABLE ACCESS FULL SYS_FBA_HIST_ * 6 FILTER * 7 HASH JOIN OUTER 1 * 8 TABLE ACCESS FULL EMP 1 9 VIEW 14 * 10 TABLE ACCESS FULL SYS_FBA_TCRV_
219 SQL> select table_name 2 from user_tables 3 / TABLE_NAME SYS_FBA_HIST_71036 SYS_FBA_TCRV_71036 SYS_FBA_DDL_COLMAP_71036 EMP 219
220 SQL> select dbms_metadata.get_ddl( 'TABLE', 'SYS_FBA_HIST_71036') from dual; CREATE TABLE "SCOTT"."SYS_FBA_HIST_71036" ( "RID" VARCHAR2(4000), "STARTSCN" NUMBER, "ENDSCN" NUMBER, "XID" RAW(8), "OPERATION" VARCHAR2(1), "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0) ) COMPRESS FOR ALL OPERATIONS TABLESPACE "SPACE_FOR_ARCHIVE" PARTITION BY RANGE ("ENDSCN") ( PARTITION "HIGH_PART" VALUES LESS THAN (MAXVALUE) ) 220
221 SQL> select dbms_metadata.get_ddl( 'TABLE', 'SYS_FBA_TCRV_71036') from dual; CREATE TABLE "SCOTT"."SYS_FBA_TCRV_71036" ( "RID" VARCHAR2(4000), "STARTSCN" NUMBER, "ENDSCN" NUMBER, "XID" RAW(8), "OPERATION" VARCHAR2(1) ) TABLESPACE "SPACE_FOR_ARCHIVE" 221
222 SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows SELECT STATEMENT VIEW UNION-ALL * 3 FILTER 4 PARTITION RANGE ITERATOR 445 * 5 TABLE ACCESS FULL SYS_FBA_HIST_ * 6 FILTER * 7 HASH JOIN OUTER 1 * 8 TABLE ACCESS FULL EMP 1 9 VIEW 14 * 10 TABLE ACCESS FULL SYS_FBA_TCRV_
223 223 all your history...
224 224 all your audit...
225 225 restrictions #1
226 SQL> alter table EMP RENAME column job to jobtitle; * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table SQL> alter table emp DROP column dummy; alter table scott.emp drop column dummy * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table SQL> alter table emp ADD dummy int; Table altered. 226
227 be careful... no spanning DDL might apply 227
228 better in 11.2 DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA 228
229 229 restrictions #2
230 230
231 Feature: sql transposition 231
232 232 rows to columns, colums to rows
233 "I need sales by product for each quarter...now" 233
234 SQL> select product, 2 trunc(txn_date,'q') mth, sum(quantity) total 3 from SALES 4 group by product,trunc(txn_date,'q') 5 order by 1,2; 234 PRODUCT MTH TOTAL CHAINSAW JAN CHAINSAW APR CHAINSAW JUL CHAINSAW OCT HAMMER JAN HAMMER APR HAMMER JUL HAMMER OCT SCREW DRIVER JAN SCREW DRIVER APR SCREW DRIVER JUL SCREW DRIVER OCT SPADE JAN SPADE APR SPADE JUL SPADE OCT WHEEL BARROW JAN WHEEL BARROW APR WHEEL BARROW JUL WHEEL BARROW OCT
235 "That s crap...surely you know I wanted it ACROSS the page" 235
236 236
237 237
238 and below
239 SQL> select 2 product 3,sum(case when trunc(txn_date,'q')='jan' then qty end) jan 4,sum(case when trunc(txn_date,'q')='apr' then qty end) apr 5,sum(case when trunc(txn_date,'q')='jul' then qty end) jul 6,sum(case when trunc(txn_date,'q')='oct' then qty end) oct 7 from SALES 8 group by product 9 order by 1 10 / PRODUCT JAN APR JUL OCT CHAINSAW HAMMER SCREW DRIVER SPADE WHEEL BARROW
240 240 11g pivot clause
241 SQL> select * 2 from (select product, 3 trunc(txn_date,'q') mth, 4 quantity 5 from sales ) 6 pivot( sum(quantity) for mth in 7 ( 'JAN', 8 'APR', 9 'JUL', 10 'OCT') ) 11 order by 1 12 / PRODUCT 'JAN' 'APR' 'JUL' 'OCT' CHAINSAW HAMMER SCREW DRIVER SPADE WHEEL BARROW
242 242 "nah...make it go DOWN the page
243 SQL> create table PIVOTED_SALES as select * 2 from (select product, 3 trunc(txn_date,'q') mth, 4 quantity 5 from sales ) 6 pivot( sum(quantity) for mth in 7 ( 'JAN', 8 'APR', 9 'JUL', 10 'OCT') ) 11 order by 1 12 / Table created. 243
244 244 unpivot clause
245 SQL> desc PIVOTED_SALES Name Null? Type PRODUCT VARCHAR2(20) Q1 NUMBER Q2 NUMBER Q3 NUMBER Q4 NUMBER 245
246 SQL> select * 2 from PIVOTED_SALES 3 UNPIVOT 4 ( quantity for quarter in (Q1,Q2,Q3,Q4) ) 5 / column values become "quantity" 246 PRODUCT QUARTER QUANTITY CHAINSAW Q CHAINSAW Q CHAINSAW Q CHAINSAW Q HAMMER Q HAMMER Q HAMMER Q HAMMER Q SCREW DRIVER Q SCREW DRIVER Q SCREW DRIVER Q SCREW DRIVER Q SPADE Q SPADE Q SPADE Q SPADE Q WHEEL BARROW Q WHEEL BARROW Q WHEEL BARROW Q WHEEL BARROW Q column names become "quarter"
247 247 elements must be known in advance
248 248
Spool Generated For Class of Oracle By Satish K Yellanki
SQL> CREATE VIEW Employees 3 SELECT 4 Empno "ID Number", 5 Ename Name, 6 Sal "Basic Salary", 7 Job Designation 8 FROM Emp; SQL> SELECT 2 Empno "ID Number", 3 Ename Name, 4 Sal "Basic Salary", 5 Job Designation
More informationRDBMS Using Oracle. Lecture week 5. Lecture Overview
RDBMS Using Oracle Lecture week 5 CASE Expression Group Functions Lecture Overview AVG MAX MIN SUM COUNT Etc Working with Date Decode Function INSERT, UPDATE and DELETE commands Commit and Rollback, Alter
More informationNote: Small fonts in this presentation
Note: Small fonts in this presentation Can you read this? SQL> select sample_font 2 from dual ; 1 1 3 4 2 5 https:// 6 3 7 bio 8 4 make you more successful with Oracle 5 SQL-lectric!!! Connor McDonald
More informationABSTRACT INTRODUCTION IMPORTANT CONCEPTS. John Jay King, King Training Resources
ANALYZE THIS! USING ORACLE8I ANALYTIC FUNCTIONS John Jay King, King Training Resources ABSTRACT Oracle 8.1.6 introduced new Analytic functions allowing complex statistical calculations to be accomplished
More informationSemester 1 Session 3. Database design
IRU SEMESTER 2 January 2010 Semester 1 Session 3 Database design Objectives To be able to begin the design of a relational database by Writing a mission statement for the project Specifying the mission
More informationPerformance tuning for developers By Riyaj Shamsudeen
Performance tuning for developers By Riyaj Shamsudeen Who am I? 18 years using Oracle products/dba OakTable member Oracle ACE Certified DBA versions 7.0,7.3,8,8i &9i Specializes in RAC, performance tuning,
More informationReading Plans in the cloud or not Revised November 2017
Reading Plans in the cloud or not Revised November 2017 This free training webinar is a lesson from the Hotsos Optimizing Oracle SQL, Intensive (OPINT) course. Please visit our website for more information.
More informationQuery Tuning Using Advanced Hints
Query Tuning Using Advanced Hints NYOUG Meeting December 12, 2002 Claudio Fratarcangeli Adept Technology Inc. claudiof@computer.org PUSH_PRED Hint Applicable when doing an outer join to a view Normally,
More informationSpool Generated For Class of Oracle By Satish K Yellanki
SQL> SELECT MGR, COUNT(*) 2 FROM Emp 3 GROUP BY MGR; MGR COUNT(*) ---------- ---------- 7566 2 7698 5 7782 1 7788 1 7839 3 7902 1 1 7 rows selected. SQL> DECLARE 2 V_Ename Emp.Ename%TYPE; 3 V_Job Emp.Job%TYPE;
More informationSQL> exec sample_font
NOTE itty bitty fonts in this presentation SQL> exec sample_font Can you read this? 1 Connor McDonald OracleDBA co.uk 2 3 bio slide 4 Connor McDonald 6 why? 7 9 life was simple 11 12 (good) cost optimizer
More informationPerformance tuning using SQL new features. By Riyaj Shamsudeen
Performance tuning using SQL new features By Riyaj Shamsudeen Who am I? 15 years using Oracle products Over 14 years as Oracle DBA Certified DBA versions 7.0,7.3,8,8i &9i Specializes in performance tuning,
More informationChasing the optimizer, step by step. Mauro Pagano
Chasing the optimizer, step by step Mauro Pagano Mauro Pagano Consultant & Developer Oracle è Enkitec è Accenture DBPerf and SQL Tuning Training, Conferences and Workshops Tools (SQLT, SQLd360, TUNAs360,
More informationCS Reading Packet: "Simple Reports - Part 2"
CS 325 - Reading Packet: "Simple Reports - Part 2" p. 1 CS 325 - Reading Packet: "Simple Reports - Part 2" Sources: * Oracle9i Programming: A Primer, Rajshekhar Sunderraman, Addison Wesley. * Classic Oracle
More informationColumn Functions and Grouping
Column Functions and Grouping Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 3.3.1 Unit Objectives After completing this unit, you should
More information10/7/ g for developers. Connor McDonald. OracleDBA. co.uk
11g for developers 1 Connor McDonald OracleDBA co.uk 2 1 3 4 2 253 days ago... 5 not any more 6 3 254 days... 7 30's 4 8 4 9 my grumpy statement 10 5 DO NOT UPGRADE TO 11G more on that later 11 first impressions
More informationOracle MOOC: SQL Fundamentals
Week 3 Homework for Lesson 3 Homework is your chance to put what you've learned in this lesson into practice. This homework is not "graded" and you are encouraged to write additional code beyond what is
More informationArchive Log Mining. Supplemental logging must be enabled on the source database before generating redo log files that will be analyzed by LogMiner.
Archive Log Mining In Oracle8i, LogMiner was introduced as a tool capable of reading redo records found in the redo log files using a relational interface. To find out what Oracle is writing to the redo
More informationSQL Programming 1 SQL1 1
SQL Programming 1 The SELECT-FROM-WHERE Structure Single Relation Queries ORDER BY LIKE IS (NOT) NULL DISTINCT Aggregation Queries Grouping Having Oracle SQL*Plus Readings: Section 6.1 and 6.4 of Textbook.
More informationIntroduction to Relational Databases Part 2: How?
Introduction to Relational Databases Part 2: How? Claude Rubinson University of Houston Downtown rubinsonc@uhd.edu cjr@grundrisse.org September 28, 2011 Normalized Database People PersonUID Person Age
More informationSee the apply lag in the database SQL> select value, unit from v$dataguard_stats where name = 'apply lag';
SQL> @dgnfia ------------ Apply Lag Control ------------ Make sure RTQ is active SQL> @sysdba_kokki SQL> connect sys/oracle@kokki as sysdba SQL> alter database open; Database altered. ------------ See
More informationLecture9: Data Manipulation in SQL, Advanced SQL queries
IS220 / IS422 : Database Fundamentals College of Computer and Information Sciences - Information Systems Dept. Lecture9: Data Manipulation in SQL, Advanced SQL queries Ref. Chapter5 Prepared by L. Nouf
More informationDemystifying Cache Buffer Chains
Demystifying Cache Buffer Chains Session 431 Arup Nanda Longtime Oracle DBA Twitter @ArupNanda Blog aarup.blogspot.com Facebook.com/ArupKNanda REMINDER Check in on the COLLABORATE mobile app Agenda SQL>
More informationMethodical Performance Troubleshooting. Arup Nanda. You noticed some degradation of performance
Methodical Performance Troubleshooting Arup Nanda Agenda What this is about? You noticed some degradation of performance What should you do next? Where to start What tool to use How to understand the root
More informationRelease Notes. Version SP2. Hubble Desktop (Edition 1) JD Edwards World & EnterpriseOne and Oracle E-Business Suite
Release Notes Version 2016.1.SP2 Hubble Desktop (Edition 1) JD Edwards World & EnterpriseOne and Oracle E-Business Suite Document Information..............................................................i
More informationMining AWR V2. Trend Analysis. MARIS ELSINS Lead Database Consultant Pythian
Mining AWR V2 Trend Analysis MARIS ELSINS Lead Database Consultant 216 Pythian 1 Located in Riga, Latvia Oracle [Apps] DBA since 25 Speaker at conferences since 27 @MarisElsins elsins@pythian.com http://bit.ly/getmospatchv2
More informationGetting Started with Exadata & Smart Scan
Getting Started with Exadata & Smart Scan Aman Sharma Aman Sharma Who Am I? Aman Sharma About 12+ years using Oracle Database Oracle ACE Frequent Contributor to OTN Database forum(aman.) Oracle Certified
More informationCISC 7510X Final Exam For the below questions, use the following schema definition.
CISC 7510X Final Exam For the below questions, use the following schema definition. customer(custid,username,fname,lname) product(prodid,description,listedprice) purchase(purchid,custid,timstamp) purchaseitem(purchid,prodid,qty,price)
More informationCISC 7512X Final Exam For the below questions, use the following schema definition.
CISC 7512X Final Exam For the below questions, use the following schema definition. customer(custid,username,fname,lname) product(prodid,description,listedprice) purchase(purchid,custid,timstamp) purchaseitem(purchid,prodid,qty,price)
More informationOracle MOOC: SQL Fundamentals
Week 2 Homework for Lesson 2 Homework is your chance to put what you've learned in this lesson into practice. This homework is not "graded" and you are encouraged to write additional code beyond what is
More informationPurchase Order, Requisitions, Inventory Hands On. Workshop: Purchase Order, Requisitions, Inventory Hands On
Workshop: Purchase Order, Requisitions, Inventory Hands In this follow up session to the Operations Changes in Purchase Order, Requisition, and Inventory Theory course, this hands on session will look
More informationRAC performance tuning
RAC performance tuning By Riyaj Shamsudeen OraInternals Riyaj Shamsudeen These are receive metrics RAC CR Wait Events GC cr block 2-way/3-way GC cr block busy GC cr block congested/ GC cr grants congested.
More informationInterpreting AWR reports straight to the Goal
Interpreting AWR reports straight to the Goal Franck Pachot dbi services Switzerland Keywords: AWR, Statspack, Oracle, Tuning, DB Time. Introduction A Statspack/AWR report is not something to be read from
More informationCOURSE LISTING. Courses Listed. with Business Intelligence (BI) Crystal Reports. 26 December 2017 (18:02 GMT)
with Business Intelligence (BI) Crystal Reports Courses Listed BOC345 - SAP Crystal Reports 2011: Optimizing Report Data Processing BOC320 - SAP Crystal Reports: - BOCE10 - SAP Crystal Reports for Enterprise:
More informationStrategies for Monitoring Large Data Centers with Oracle Enterprise Manager. Ana McCollum Consulting Product Manager
Strategies for Monitoring Large Data Centers with Oracle Enterprise Manager Ana McCollum Consulting Product Manager The following is intended to outline our general product direction. It is intended for
More informationHow Physical Inventory 11i Works
How Physical Inventory 11i Works An Oracle Technical White Paper June 2006 Revision 1 1 How Physical Inventory 11i Works INTRODUCTION Oracle Inventory provides several tools to aid users in controlling
More information"There is insufficient memory to execute this function" error message when you use the Reverse Register function.
Platform hotfixes ID Title 378244 "There is insufficient memory to execute this function" error message when you use the Reverse Register function. 378383 Merge cmdlet indicate conflicts but no conflicts
More informationIBM TRIRIGA Application Platform Version 3 Release 4.1. Reporting User Guide
IBM TRIRIGA Application Platform Version 3 Release 4.1 Reporting User Guide Note Before using this information and the product it supports, read the information in Notices on page 166. This edition applies
More informationAnalytics Cloud Service Administration Guide
Analytics Cloud Service Administration Guide Version 17 November 2017 Contents About This Guide... 5 About Primavera Analytics... 5 About Primavera Data Warehouse... 6 Overview of Oracle Business Intelligence...
More informationGW Coupons for VirtueMart
Joomla! GW Coupons for VirtueMart Version 0.4x Administration Guide document version 0.42 Feb. 17, 2009 Copyright No portions of this manual may be reproduced or redistributed without the written consent
More informationABSTRACT INTRODUCTION OUR ETL EVOLUTION
Paper 2409-2018 Developing BI Best Practices: Texas Parks and Wildlife s ETL Evolution Drew Turner, John Taylor, Alejandro Farias, Texas Parks and Wildlife Department ABSTRACT The development of extract,
More informationDo you remember the future? 2014 MapR Technologies 2
2014 MapR Technologies 2014 MapR Technologies 1 Do you remember the future? 2014 MapR Technologies 2 2014 MapR Technologies 3 Some things turned out as expected 2014 MapR Technologies 4 Guys wearing Fedoras
More informationWorkflow Mining: Identification of frequent patterns in a large collection of KNIME workflows
Workflow Mining: Identification of frequent patterns in a large collection of KNIME workflows Nils Weskamp, Research Scientist Computational Chemistry nils.weskamp@boehringer-ingelheim.com Overview Motivation
More informationOracle on z/os and Linux on System z Tuning experiences
Oracle on z/os and Linux on System z Tuning experiences Thomas Niewel Principal Sales Consultant Agenda Tuning Why? Statspack AWR Report ASH Report SQL Tuning tools TKPROF Explain
More informationThe Human Resources Information System DATA WAREHOUSE
The Human Resources Information System DATA WAREHOUSE September 2010 First Edition: 1999 Second Edition: October, 2004 Third Edition: March 2007 Current Edition: September, 2010 Oregon State University,
More informationACCTivate! Release Notes (QuickBooks Edition)
ACCTivate! 7.3.2 Release Notes (QuickBooks Edition) Business Activity - Product Tax Code overrides Customer Tax code on Materials tab of Business Activity - #56665 Business Alerts - Sales Order Workflow
More informationState Analytical Reporting System (STARS)
Table of Contents Human Resources Analytics Dashboards and Reports... 3 WORKFORCE DEPLOYMENT... 4 WORKFORCE DEMOGRAPHICS... 8 COMPENSATION... 11 RETENTION... 16 TIME AND LABOR ANALYSIS... 21 ACCRUAL...
More information2014 MSX Group Microsoft Forecaster User Group Forums. Questions Asked by Attendees
2014 MSX Group Microsoft Forecaster User Group Forums Questions Asked by Attendees This document contains the questions we received during this year s Forecaster User Group Forum. If any of the questions
More informationDeltek Ajera Release Notes
Deltek Ajera 8 8.08 Release Notes October 21, 2015 While Deltek has attempted to verify that the information in this document is accurate and complete, some typographical or technical errors may exist.
More informationISO Monitoring and Measurement Nonconformance and Corrective and Preventative Action
ISO 14001 4.5.1 Monitoring and Measurement 4.5.2 Nonconformance and Corrective and Preventative Action 4.5.1 Monitoring and Measurement The organization shall establish and maintain documented procedures
More informationThe Enterprise Project
The Enterprise Project Reporting & Analytics Environment Requirements Gathering September 2017 Requirements Collection BOT Executives Metrics Visioning Sessions, Existing Metrics & Strategic Direction
More informationDATABASICS Time User s Guide v3.1
DATABASICS Time User s Guide v3.1 A Guide to CALIBRE s Time Reporting Website July 2016 CALIBRE 6354 Walker Lane, Suite 300 Alexandria VA 22310 1 Table of Contents Before You Get Started... 3 Accessing
More informationSage 100 Contractor Advanced Payroll
Session 4-1 Thursday, October 12 8:30am 10:00am Room 619 Session 4-1 Sage 100 Contractor Advanced Payroll Presented By: Kathy Gotzenberg Construction kgotzenberg@cbs-solution.com Original Author(s): Kathy
More informationRequirements Analysis. Overview
Requirements Analysis Overview What is requirement? Classification of requirements Iterative and evolutionary requirements analysis Use Cases Domain models N. Meng, B. Ryder 2 1 Requirements Definition
More informationCP 94bis Statement of amounts due with weight brackets
CP 94bis Statement of amounts due with weight brackets Completion instructions Document version: 1.0 Date: 2016 03 29 UPU form template valid from: 2017 01 01 1 General rules A CP 94bis statement of amounts
More informationOracle PaaS and IaaS Universal Credits Service Descriptions
Oracle PaaS and IaaS Universal Credits Service Descriptions December 1, 2017 Oracle PaaS_IaaS_Universal_CreditsV120117 1 Metrics... 3 Oracle PaaS and IaaS Universal Credit... 8 Oracle PaaS and IaaS Universal
More informationMARKETING DASHBOARDS. Why they fail to deliver value and how we overcame it. Frank Moreno VP Worldwide Marketing Datawatch
Frank Moreno VP Worldwide Marketing Datawatch Ellen Wilson Marketing Operations Analyst Datawatch MARKETING DASHBOARDS Why they fail to deliver value and how we overcame it There s a better way to build
More informationHyperion Focus 17. EPM Logs 101
Hyperion Focus 17 EPM Logs 101 Presenter Chuck Czajkowski, Solutions Architect Over 20 years IT and Networking experience On the support team at Hyperion Solutions in the early 2000 s working as an Environmental
More informationExplanation of HealthStream Import File Specifications
Explanation of HealthStream Import File Specifications HealthStream Learning Center TM Contents Contents Revision History... 2 Overview... 4 Preparing Demographic Data... 5 User IDs... 5 Department Title
More informationBPP PROFESSIONAL EDUCATION IT COURSES
BPP PROFESSIONAL EDUCATION IT COURSES COURSE CALENDAR All sessions are held at The Mallard Intro to Excel 16 Feb (am) Excel: the essentials Excel: presenting data Excel: data analysis 16 Mar (am) or 6
More informationUsing the Pricing Engine Request Viewer to Troubleshoot Pricing Issues
Using the Pricing Engine Request Viewer to Troubleshoot Pricing Issues March 14, 2006 By Teri Cameron What is the Pricing Engine Request Viewer Accessing the Pricing Engine Request Viewer Profile Options
More informationOracle Financial Services Revenue Management and Billing V2.3 Performance Stress Test on Exalogic X3-2 & Exadata X3-2
Oracle Financial Services Revenue Management and Billing V2.3 Performance Stress Test on Exalogic X3-2 & Exadata X3-2 O R A C L E W H I T E P A P E R J A N U A R Y 2 0 1 5 Table of Contents Disclaimer
More informationCREATE INSTANT VISIBILITY INTO KEY MANUFACTURING METRICS
CREATE INSTANT VISIBILITY INTO KEY MANUFACTURING METRICS The QualityWorX Dashboard provides the most comprehensive, easy-to-use reporting platform for production and quality management in the industry.
More informationTimekeeper Training Guide for Administrators & Approvers
Timekeeper Training Guide for Administrators & Approvers Last updated: August 2015 Contents HOW DO I REQUEST ACCESS TO BECOME A TIMEKEEPER ADMINISTRATOR OR APPROVER?.. 3 ACRONYMS/GLOSSARY... 4 ABOUT THE
More informationCheating With Statistics In SAP ASE
Cheating With Statistics In SAP ASE Raymond Mardle 1 / 78 Introduction A bit about myself How statistics might be generated Tools for analysis Customisation procedure Other ways of cheating Where to find
More information!SSA Product Lifecycle Management. SSA PLM 8.0 SP4 Release Notes
!SSA Product Lifecycle Management SSA PLM 8.0 SP4 Release Notes Copyright 2006 by SSA Global Technologies, Inc. and its Subsidiaries and Affiliates All rights reserved. No part of this publication may
More informationBinary storage for nested data structures and application to hstore data type. Oleg Bartunov, Teodor Sigaev Moscow University
Binary storage for nested data structures and application to hstore data type Oleg Bartunov, Teodor Sigaev Moscow University Hstore developers Teodor Sigaev, Oleg Bartunov Sternberg Astronomical Institute
More informationScott Hockly. Environmental Management of an Inner City Roading Project
Scott Hockly Environmental Management of an Inner City Roading Project Overview National War Memorial Park (Pukeahu) The big picture The Alliance Constraints Memorial Park Empowering Act Approach Reality
More informationChapter 8 - Reports and Financial Statements
Chapter 8 - Reports and Financial Statements This Section Includes: 8.1 Report Listing 8.1.1 nvision Reports 8.1.2 AP PeopleSoft Delivered Reports 8.1.3 GL PeopleSoft Delivered Reports 8.2 Queries 8.2.1
More informationKey performance indicators for production - Examples from chemical industry. Krister Forsman
Key performance indicators for production - Examples from chemical industry Krister Forsman 2016-04-08 Agenda Short presentation of the Perstorp group Characteristics of chemical plants; business- and
More informationSAP Public Budget Formulation 8.1
Sizing Guide Document Version: 1.0 2013-09-30 CUSTOMER Typographic Conventions Type Style Example Example EXAMPLE Example Example EXAMPLE Description Words or characters quoted from the screen.
More informationOracle Big Data Discovery The Visual Face of Big Data
Oracle Big Data Discovery The Visual Face of Big Data Today's Big Data challenge is not how to store it, but how to make sense of it. Oracle Big Data Discovery is a fundamentally new approach to making
More informationProduct Summary of XLReporter with GE Intelligent Platforms SyTech, Inc.
Product Summary of XLReporter with GE Intelligent Platforms SyTech, Inc. Page 1 Contents Summary... 3 SYTECH is THE REPORT COMPANY... 3 Product Overview... 4 XLREPORTER EDITIONS... 4 DATA INTERFACES...
More informationDBWR checkpoints 4 2 DBWR checkpoints 3
------------ Full Checkpoint Session altered. ------------ Enable checkpoint logging SQL> alter system set log_checkpoints_to_alert = true; ------------ How many checkpoints did each instance take? SQL>
More informationBacardi & Vodafone Case Studies : OnLine Archiving projects
Bacardi & Vodafone Case Studies : OnLine Archiving projects November 22, 2007 Erwin De Smaele Presales Engineer - Applimation Presentation Agenda Data Growth Challenges What s Online Archiving? Basics
More informationUniversity of North Carolina at Chapel Hill. University of North Carolina. Time Information Management (TIM) EPA Exempt Employees
Using time Information Management (TIM) Time Stamp Employees Using Time Information Management University of North Carolina at Chapel Hill (TIM) University of North Carolina Time Information Management
More informationTIMEFORCE HOLIDAY CHECKLIST
TimeForce Holiday Checklist TIMEFORCE HOLIDAY CHECKLIST This document walks you through setting up each section of the software that is required in order for holiday hours to be awarded to your employees
More informationRequirements Analysis
Objectives Classify categories of requirements Requirements Analysis Define the principles of iterative requirements analysis Learn about use cases and their elements Define system sequence diagrams for
More informationTeller & Cash Activity Analysis Tools
Teller & Cash Activity Analysis Tools CU*BASE Relationship Management Tools INTRODUCTION Take a look at the numbers...what do you see? Let s talk about the teller line. What do we need to know in order
More information3. Setting up pay types
3. Setting up pay types Before you can set up pay rates, you must set up pay types. A pay type, also known as a settlement type, is: An item that is considered a taxable earning; or A reimbursement; or
More informationItem Management. SIMMS Inventory Management Software 7.3. Updated September 28, 2010
Item Management SIMMS Inventory Management Software 7.3 Updated September 28, 2010 Contents Item Management.................. 1 Adding an Item s Profile................ 1 Add an Item s Profile..............
More informationSOA Best Practices & Framework Services in Order to Invoice Enterprise Application Integrations
SOA Best Practices & Framework Services in Order to Invoice Enterprise Application Integrations By Raman D. Singh Consulting Manager, SOA Practice Protégé Software Services Booth# 1426 Agenda Today Protégé
More informationAccelerating Your Big Data Analytics. Jeff Healey, Director Product Marketing, HPE Vertica
Accelerating Your Big Data Analytics Jeff Healey, Director Product Marketing, HPE Vertica Recent Waves of Disruption IT Infrastructu re for Analytics Data Warehouse Modernization Big Data/ Hadoop Cloud
More informationPentaho 8.0 and Beyond. Matt Howard Pentaho Sr. Director of Product Management, Hitachi Vantara
Pentaho 8.0 and Beyond Matt Howard Pentaho Sr. Director of Product Management, Hitachi Vantara Safe Harbor Statement The forward-looking statements contained in this document represent an outline of our
More informationInfor FMS SunSystems What s New in SunSystems 5.4.1
Infor FMS SunSystems What s New in SunSystems 5.4.1 Make a change for the better The following functionality has been introduced or enhanced in SunSystems 5.4.1 Phone: +353 1 6768900 Fax: +353 1 6768538
More informationEngagement Portal. Employee Engagement User Guide Press Ganey Associates, Inc.
Engagement Portal Employee Engagement User Guide 2015 Press Ganey Associates, Inc. Contents Logging In... 3 Summary Dashboard... 4 Results For... 5 Filters... 6 Summary Page Engagement Tile... 7 Summary
More informationWhat about streaming data?
What about streaming data? 1 The Stream Model Data enters at a rapid rate from one or more input ports Such data are called stream tuples The system cannot store the entire (infinite) stream Distribution
More informationIBM Cognos Report Studio: Author Professional Reports Fundamentals (v10.2.2) Student Guide Vol 2 Course Code: B5A58
IBM Cognos Report Studio: Author Professional Reports Fundamentals (v10.2.2) Student Guide Vol 2 Course Code: B5A58 IBM COGNOS REPORT STUDIO: AUTHOR PROFESSIONAL REPORTS FUNDAMENTALS (V10.2.2) IBM Cognos
More informationOracle Planning and Budgeting Cloud. December 2017 Update (17.12) What s New
Oracle Planning and Budgeting Cloud December 2017 Update (17.12) What s New TABLE OF CONTENTS REVISION HISTORY... 3 ORACLE PLANNING AND BUDGETING CLOUD, DECEMBER UPDATE... 3 ANNOUNCEMENTS AND NEW FEATURES...
More informationSINGLE-YEAR SALARY PLANNING
SINGLE-YEAR SALARY PLANNING TABLE OF CONTENTS OPENING A PLAN FILE... 2 GENERAL NAVIGATION... 4 Plan File Layout... 4 Employee Groups Not Included... 4 Axiom Toolbar... 4 SALARY INCREASES... 6 Current Year
More informationDr. Rob Donald - Curriculum Vitae. Web: Mob:
Dr. Rob Donald - Curriculum Vitae Email: rob@statsresearch.co.uk, Web: http://www.statsresearch.co.uk Mob: 07780 650 910 Profile Data Scientist, Systems and Data Analyst In my current role I am a senior
More informationAura BackOffice Reports Coherent Software Solutions
Aura BackOffice 6.0.0 Reports Contents 3 Table of Contents Part I Reports 6 1 Sales... 8 Category Sales... 9 Item Sales... 12 Invoice Summary... 14 Discounts Summary... 16 Discounts Detailed... 18 Hourly
More informationEclipse Work Order Management. Release (Eterm)
Eclipse Work Order Management Release 8.6.4 (Eterm) Legal Notices 2008 Activant Solutions Inc. All rights reserved. Unauthorized reproduction is a violation of applicable laws. Activant and the Activant
More informationIntroducing 2-Tier BI and Analytics
Introducing 2-Tier BI and Analytics A couple quick questions 1. Part of your mission is to drive a data-driven organization? 2. Have some sort of common version of the truth? 3. Good idea to let business
More informationSocial and Collaborative BPM Pushing Organizational Excellence
Social and Collaborative BPM Pushing Organizational Excellence Manas Deb, PhD MBA, Sr. Director, SOA/BPM Product Management, Oracle HQ Manoj Das, Sr. Director, BPM Product Management,
More informationOracle Hyperion Planning for Interactive Users
Oracle University Contact Us: 1.800.529.0165 Oracle Hyperion Planning 11.1.2 for Interactive Users Duration: 0 Days What you will learn This course is designed to teach you how to use Planning. It includes
More informationOracle. Financials Cloud Using Subledger Accounting. Release 13 (update 17D)
Oracle Financials Cloud Release 13 (update 17D) Release 13 (update 17D) Part Number E89132-01 Copyright 2011-2017, Oracle and/or its affiliates. All rights reserved. Author: Barbara Snyder This software
More informationSorting. 1 Insertion Sort. CS61B Summer 2006 Instructor: Erin Korber Lectures 13,14,15: 18,19,20 July
CS61B Summer 2006 Instructor: Erin Korber Lectures 13,14,15: 18,19,20 July Sorting The need to sort numbers, strings, and other records arises frequently in computer applications. The entries in any modern
More informationaxe Documentation Release g6d4d1b6-dirty Kevin Murray
axe Documentation Release 0.3.2-5-g6d4d1b6-dirty Kevin Murray Jul 17, 2017 Contents 1 Axe Usage 3 1.1 Inputs and Outputs..................................... 4 1.2 The barcode file......................................
More informationOracle FLEXCUBE General Ledger Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E
Oracle FLEXCUBE General Ledger Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E51465-01 Table of Contents Oracle FLEXCUBE General Ledger 1. ABOUT THIS MANUAL... 1-1 1.1
More information