User Tools

Site Tools


kurs:plsql_tables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
kurs:plsql_tables [2014/09/10 21:22]
127.0.0.1 external edit
kurs:plsql_tables [2015/04/09 15:37]
mh
Line 1: Line 1:
 +== PLSQL Table übergeben ==
 +
 +<​code>​
 +--------------------------------------------------------
 +--  DDL for Package PCK_EMPLOYEES
 +--------------------------------------------------------
 +
 +  CREATE OR REPLACE PACKAGE "​HR"​."​PCK_EMPLOYEES"​ AS 
 +
 +cursor c_emp_dep(cp_department_name varchar2) is
 +  select employee_id,​
 +         ​first_name,​
 +         ​last_name,​
 +         ​salary,​
 +         ​department_name
 +    from employees e join departments d
 +      on e.department_id = d.department_id
 +      where department_name = cp_department_name;​
 +      ​
 +type type_emp_dep is table of c_emp_dep%rowtype
 +  index by binary_integer; ​    
 +
 +procedure get_emp_per_dep_name(
 +  p_department_name in departments.department_name%type,​
 +  t_emp_dep out type_emp_dep);​
 +
 +procedure print_emp_dep(t_emp_dep in type_emp_dep);​
 +/* 
 +procedure get_emp_per_dep_name (p_department_name in
 +type_emp_dep out von einem zu definierenden table type
 +
 +procedure print_emp_dep(type_emp_dep in)
 +)
 +
 +
 +
 +*/
 +
 +procedure next_emp;
 +
 +END PCK_EMPLOYEES;​
 +
 +/
 +</​code>​
 +
 +
 +
 10 zufällige, nicht doppelte Employees ziehen 10 zufällige, nicht doppelte Employees ziehen
  
Line 65: Line 112:
 END PLSQL_TABLE;​ END PLSQL_TABLE;​
 </​code>​ </​code>​
 +
 +=== add & delete education ===
 +<​code>​
 +CREATE OR REPLACE PROCEDURE ADD_EDUCATION ​
 +(
 +  P_PER_NAME IN VARCHAR2  ​
 +, P_NEW_EDUCATION IN VARCHAR2  ​
 +) AS 
 +  v_edu education := education();​
 +  v_index number;
 +  v_add_edu education := education(P_new_EDUCATION);​
 +BEGIN
 +  select coalesce(per_education,​ education()) into v_edu
 +    from persons where per_name = p_per_name;
 +  ​
 +  /*
 +  v_edu.extend;​
 +  v_edu(v_edu.last) := p_new_education;​
 +  */
 +  ​
 +  v_edu := v_edu multiset union all v_add_edu;
 +  ​
 +  update persons set per_education = v_edu
 +    where per_name = p_per_name;
 +  ​
 +  ​
 +END ADD_EDUCATION;​
 +
 + /​*v_edu.extend;​
 +  v_edu(v_edu.last) := '​test1';​
 +  ​
 +  v_edu.extend;​
 +  v_edu(v_edu.last) := '​test2';​
 +  ​
 +  v_edu.extend;​
 +  v_edu(v_edu.last) := '​test3';​
 +  ​
 +  ​
 +  dbms_output.put_line(v_edu.first||'​ '|| v_edu.last);​
 +  ​
 +  for i in v_edu.first .. v_edu.last loop
 +    dbms_output.put_line(i||'​ '|| v_edu(i));
 +  end loop;
 +  ​
 +  v_index := v_edu.first;​
 +  loop
 +    dbms_output.put_line(v_index||'​ '|| v_edu(v_index));​
 +    v_index := v_edu.next(v_index);​
 +    exit when v_index is null;
 +  end loop;
 +  */
 +</​code>​
 +
 +
kurs/plsql_tables.txt · Last modified: 2015/04/09 15:38 by mh