/Database/Oracle/?????????????????.sql

# · SQL · 89 lines · 38 code · 18 blank · 33 comment · 0 complexity · cf6a050dcf0e6b3a11c51fd60c82eb9d MD5 · raw file

  1. --?????http://www.cnblogs.com/huyong/archive/2011/05/10/2041951.html#_Toc9878
  2. --??????
  3. /*
  4. ??????????:
  5. TYPE record_name IS RECORD(
  6. v1 data_type1 [NOT NULL] [:= default_value ],
  7. v2 data_type2 [NOT NULL] [:= default_value ],
  8. ......
  9. vn data_typen [NOT NULL] [:= default_value ] );
  10. */
  11. --?4 ?
  12. DECLARE
  13. TYPE test_rec IS RECORD(
  14. Name VARCHAR2(30) NOT NULL := '??',
  15. Info VARCHAR2(100));
  16. rec_book test_rec;
  17. BEGIN
  18. rec_book.Name :='??';
  19. rec_book.Info :='?PL/SQL??;';
  20. DBMS_OUTPUT.PUT_LINE(rec_book.Name||' ' ||rec_book.Info);
  21. END;
  22. --??? SELECT???????????,????????????????????????
  23. --?5 ?
  24. DECLARE
  25. --???hr.employees????????????????
  26. TYPE RECORD_TYPE_EMPLOYEES IS RECORD(
  27. f_name hr.employees.first_name%TYPE,
  28. h_date hr.employees.hire_date%TYPE,
  29. j_id hr.employees.job_id%TYPE);
  30. --????????????????
  31. v_emp_record RECORD_TYPE_EMPLOYEES;
  32. BEGIN
  33. SELECT first_name, hire_date, job_id INTO v_emp_record
  34. FROM employees
  35. WHERE employee_id = &emp_id;
  36. DBMS_OUTPUT.PUT_LINE('?????'||v_emp_record.f_name
  37. ||' ?????'||v_emp_record.h_date
  38. ||' ???'||v_emp_record.j_id);
  39. END;
  40. /*
  41. ????????????????????????????????????????????
  42. */
  43. --??????
  44. /*
  45. ?????????????????????????????????????????????????PL/SQL?????????VARRAY?
  46. ??VARRY?????????
  47. TYPE varray_name IS VARRAY(size) OF element_type [NOT NULL];
  48. varray_name?VARRAY????????size?????????????????????????????element_type?????????????????NOT NULL???????VARRAY??????????????????????????????
  49. */
  50. --?6 ?
  51. DECLARE
  52. --????????5?VARCHAR(25)???????VARRAY????
  53. TYPE reg_varray_type IS VARRAY(5) OF VARCHAR(25);
  54. --?????VARRAY???????
  55. v_reg_varray REG_VARRAY_TYPE;
  56. BEGIN
  57. --???????????
  58. v_reg_varray := reg_varray_type
  59. ('??', '??', '??', '??', '??');
  60. DBMS_OUTPUT.PUT_LINE('?????'||v_reg_varray(1)||'?'
  61. ||v_reg_varray(2)||'?'
  62. ||v_reg_varray(3)||'?'
  63. ||v_reg_varray(4));
  64. DBMS_OUTPUT.PUT_LINE('????NULL??5??????'||v_reg_varray(5));
  65. --??????????????????????
  66. v_reg_varray(5) := '??';
  67. DBMS_OUTPUT.PUT_LINE('?5??????'||v_reg_varray(5));
  68. END;