250 likes | 549 Views
PL SQL -Г ХЭРХЭН АШИГЛАХ. MMC ERP INTERNAL TRAINING #1. PL SQL ЮУ ВЭ ?. SQL / S tructured Q uery L anguage / нь єгєгдлийн сан удирдах, мэдээлэлийг харуулах, єгєгдлийн санд мэдээлэл оруулах, засварлах, устгах зэрэг v йлдлийг хийх боломжтой єгєгдлийн санд зориулсан хэл юм .
E N D
PL SQL-Г ХЭРХЭН АШИГЛАХ MMC ERP INTERNAL TRAINING #1
PL SQL ЮУ ВЭ? SQL /Structured Query Language / нь єгєгдлийн сан удирдах, мэдээлэлийг харуулах, єгєгдлийн санд мэдээлэл оруулах, засварлах, устгах зэрэг vйлдлийг хийх боломжтой єгєгдлийн санд зориулсан хэл юм. PL/SQL (Procedural Language/Structured Query Language) • SQL хэлийг ашиглан Oracle-н өгөгдлийн санг удирдах, засварлах гэх мэт дээрх бүх үйлдлүүдийг хийх боломжтой багаж юм. • ҮНДСЭН 4 ҮЙЛДЭЛТЭЙSELECT – Єгєгдлийн санд байгаа хvснэгтээс бичлэгvvдийг харуулах • UPDATE – Хvснэгтэд байгаа мэдээллийг шинэчлэх • DELETE – Хvснэгтэд байгаа мэдээллийн устгах • INSERT INTO – Хvснэгтэд шинэ бичлэг оруулах
SELECT • Ер нь SQL хэл нь хүснэгтэн (table) мэдээлэл дээр тулгуурладаг бөгөөд ямарч хүснэгтгүй мэдээлэл гэж бараг байхгүй. • SELECT * FROM ХҮСНЭГТИЙН_НЭР; • SELECT * FROM TEST_DAVAA_TRN; • НӨХЦӨЛ ТАВИХ SELECT * FROM TEST_DAVAA_TRN WHERE TEST_NUM = 20140825;
Order by • Select-р татаж авсан мэдээлэл нь тухайн мэдээллийнхээ орсон дарааллын дагуу харуулдаг. • Order by нь Select функц-р татаж авсан мэдээллүүдээ өөрийн хүссэн дарааллын дагуу хархал хэрэглэгдэх зорилготой. • SELECT * FROM TEST_DAVAA_TRN order by test_name, test_date; Дээрх script-р татсан мэдээллээ test_name-р эхэлж дарааллуулаад араас нь test_date-р дарааллуулж харна гэсэн үг.
INSERT(САНУУЛГА) • INSERT INTO ХҮСНЭГТИЙН_НЭР (МЭДЭЭЛЭЛ ОРУУЛАХ БАГАННЫ НЭР, ... VALUES(ОРУУЛАХ МЭДЭЭЛЭЛ ,...); • INSERT INTO TEST_DAVAA_TRN (TEST_NAME, TEST_NUM, TEST_DATE) VALUES ( 'ENJI TEST', ‘20140826’, '27-AUG-2014' ); • DATE: • SYSDATE • TO_DATE('27-AUG-2014 11:15:22','DD-MON-YYYY HH24:MI:SS') • NUMBER: '20140826', • COMMIT!
UPDATE(САНУУЛГА) • UPDATE ХҮСНЭГТИЙН_НЭР SET МЭДЭЭЛЭЛ ОРУУЛАХ БАГАННЫ НЭР =ОРУУЛАХ МЭДЭЭЛЭЛ WHEREБАГАННЫ НЭР =НӨХЦӨЛ; • UPDATE TEST_DAVAA_TRN SET TEST_NAME='ANKHAA TEST', TEST_NUM=140826 WHERE TEST_NUM=20140828; • COMMIT!
DELETE(САНУУЛГА) • DELETE FROM ХҮСНЭГТИЙН_НЭР WHEREБАГАННЫ НЭР =НӨХЦӨЛ; • DELETE FROM TEST_DAVAA_TRN WHERE TEST_DATE = TO_DATE('8/27/2014 11:15:22','MM/DD/YYYY HH24:MI:SS'); • COMMIT!
TABLE • CREATE TABLE – Єгєгдлийн санд шинээр хvснэгт vvсгэнэ. • ALTER TABLE - Єгєгдлийн санд vvссэн хэснэгтийг засварлана. • DROP TABLE – Єгєгдлийн санд байгаа хvснэгтийг устгана. • TRUNCATE TABLE – Єгєгдлийн санд байгаа хvснэгтийн мэдээллийг цэвэрлэнэ.
TABLE ҮҮСГЭХ • CREATE TABLE ХҮСНЭГТИЙН_НЭР (БАГАННЫ НЭРТӨРӨЛ ); • CREATE TABLE TEST_DAVAA_TRN2 ( TEST_NAME VARCHAR2(50), TEST_NUM NUMBER(10), TEST_DATE DATE ); ШАЛГАХДАА • SELECT * FROM TEST_DAVAA_TRN2;
TABLE ЗАСАХ (САНУУЛГА) • ALTER TABLE ХҮСНЭГТИЙН_НЭР ЗАСВАРЛАХ ТӨРӨЛ • ALTER TABLE TEST_DAVAA_TRN2 ADD TEST_DESC VARCHAR2(50); • ALTER TABLE TEST_DAVAA_TRN2 MODIFY TEST_DESC VARCHAR2(150); • ALTER TABLE TEST_DAVAA_TRN2 DROP COLUMN TEST_DESC;
TABLE ЦЭВЭРЛЭХ • TRUNCATE TABLE ХҮСНЭГТИЙН_НЭР ; • DELETE FROM ХҮСНЭГТИЙН_НЭР ; COMMIT! • TRUNCATE TABLE TEST_DAVAA_TRN; • DELETE FROM TEST_DAVAA_TRN; COMMIT!
TABLE УСТГАХ (САНУУЛГА) • DROP TABLE ХҮСНЭГТИЙН_НЭР ; • DROP TABLE TEST_DAVAA_TRN2;
ЖИШЭЭ ХИЙХ • ӨӨРСДИЙН ХҮСНЭГТҮҮДИЙГ ҮҮСГЭЖ ДЭЭРХ ҮЙЛДЛҮҮДИЙГ ХИЙХ
Oracle хүснэгтүүд • Хэрхэн хоорондоо холбогддог • Хүснэгтүүд бүх мэдээллээ шууд нэг дор ашигладаггүй. Заавал 2 хүснэгт нийлж бүрэн бүтэн мэдээлэл харуулдаг. Мөн бүх table-үүд өөрсдийн гэсэн id-тай бөгөөд тухайн id-аараа хоорондоо холбогддог. • Жишээ нь: нийт нэхэмжлэхний мэдээлэл харая гэхэд надад нэхэмжлэхний мэдээлэл, аль компанийх болон ямар ямар нийлүүлэгчээс авсан гэх мэт 3 өөр төрлийн table ашиглах шаардлага гарна.
Customized болон ORACLE-Н TABLE-ҮҮД • CUX TABLES : CUX_DD_ITEM_IMPORT_TEMP • AP INVOICE HEADER TABLE: AP_INVOICES_ALL • EAM WO TABLE: WIP_ENTITIES
Customized болон ORACLE-Н TABLE-ҮҮД Transaction болгон ерөнхийдөө header, line, distribution гэсэн table-үүдийдэд хуваагдаж мэдээллүүдээ хадгалдаг. Жишээ: Po_headers_all Po_lines_all Po_distributions_all Query хийгээд Excel-рүү гаргах.
Oracle view-үүд • View гэдэг нь ямар нэгэн хүснэгтийн мэдээллүүдийг хүснэгтээс нь дахин дахин дуудхын оронд өөрт хэрэгцээтэй байдлаар хэд хэдэн хүснэгтүүдийн нэгтгээд нэг газар хадгалж хэрэглэхэд хэрэглэгддэг хүснэгт маягийн зүйл юм. • Жишээ: Oracle-н view • HR_OPERATING_UNITS • PO_VENDORS
PL/SQL Functions • CREATE OR REPLACE FUNCTION function_name(inputvariable) RETURN returning_typeIS|AS [declaration block] BEGIN <PL/SQL block WITH RETURN statement> RETURN <return_value>; [EXCEPTION EXCEPTION block] RETURN <return_value>; END;
PL/SQL PROCEDURE • Процедур нь функц-тэй бараг адилхан ялгаа нь гэвэл олон өгөгдөл буцаах боломжтой. • PROCEDURE procedure_name(inputvariable) IS [declaration block] BEGIN <PL/SQL block WITH RETURN statement> RETURN <return_value>; [EXCEPTION EXCEPTION block] RETURN <return_value>; END procedure_name;
PL/SQL CURSOR • Дээр дурдсан функц болон процедур доторх declaration хэсэгт нь хэрэглэгддэг дотроо бүрэн бүтэн SQL-н код агуулсан талбар юм. • CURSOR cursor_name IS <SQL code block> ;
PL/SQL PACKAGE • Package нь функц, cursor, процедуруудыг хооронд нь холболт хийсэн груп коднуудын нэгдэл. • Package нь заавал толгой бие гэсэн 2 тусдаа хэсгээс бүрдэнэ. • Толгой хэсэгтээ ямар ямар функц ашиглах ямар төрлийн тогтмол хувьсагчид ашиглахаа тодорхойлж өгнө. • Бие хэсэгт нь тухайн тодорхойлсон зүйлсүүдээ ашиглан бүрэн бүтэн кодоо бичэж өгнө. • Package болгон заавал нэг main процедуртай байна.
PL/SQL PACKAGE • Package Header: CREATE OR REPLACE PACKAGE package_name IS PROCEDURE procedure_name (input variables); END package_name; • Package Body: CREATE OR REPLACE PACKAGE BODY package_nameis PROCEDURE procedure_name (input variables) IS [declaration block] BEGIN <PL/SQL block WITH RETURN statement> RETURN <return_value>; [EXCEPTION EXCEPTION block] RETURN <return_value>; END package_name ;
Жишээ • Компани бүрийн WO-н тоог статус статус-р харуулах код бичнэ. • Бичсэн кодоороо package үүсгэх. • Хэрэглэгдэх зүйлс: • EAM_WORK_ORDERS_V • org_organization_definitions • Count функц ашиглах