pl sql -Г ХЭРХЭН АШИГЛАХ

25
PL SQL-Г ХЭРХЭН АШИГЛАХ MMC ERP INTERNAL TRAINING #1

Upload: misty

Post on 05-Jan-2016

106 views

Category:

Documents


0 download

DESCRIPTION

PL SQL -Г ХЭРХЭН АШИГЛАХ. MMC ERP INTERNAL TRAINING #1. PL SQL ЮУ ВЭ ?. SQL  / S tructured  Q uery  L anguage /  нь єгєгдлийн сан удирдах, мэдээлэлийг харуулах, єгєгдлийн санд мэдээлэл оруулах, засварлах, устгах зэрэг v йлдлийг хийх боломжтой єгєгдлийн санд зориулсан хэл юм . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PL SQL -Г ХЭРХЭН АШИГЛАХ

PL SQL-Г ХЭРХЭН АШИГЛАХ

MMC ERP INTERNAL TRAINING #1

Page 2: 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снэгтэд шинэ бичлэг оруулах 

PL SQL ЮУ ВЭ?

Page 3: PL SQL -Г ХЭРХЭН АШИГЛАХ

Ер нь SQL хэл нь хүснэгтэн (table) мэдээлэл дээр тулгуурладаг бөгөөд ямарч хүснэгтгүй мэдээлэл гэж бараг байхгүй.

SELECT * FROM ХҮСНЭГТИЙН_НЭР;

SELECT * FROM TEST_DAVAA_TRN;

НӨХЦӨЛ ТАВИХSELECT * FROM TEST_DAVAA_TRNWHERE TEST_NUM = 20140825;

SELECT

Page 4: PL SQL -Г ХЭРХЭН АШИГЛАХ

Select-р татаж авсан мэдээлэл нь тухайн мэдээллийнхээ орсон дарааллын дагуу харуулдаг.

Order by нь Select функц-р татаж авсан мэдээллүүдээ өөрийн хүссэн дарааллын дагуу хархал хэрэглэгдэх зорилготой.

SELECT * FROM TEST_DAVAA_TRNorder by

test_name,test_date;

Дээрх script-р татсан мэдээллээ test_name-р эхэлж дарааллуулаад араас нь test_date-р дарааллуулж харна гэсэн үг.

Order by

Page 5: PL SQL -Г ХЭРХЭН АШИГЛАХ

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!

INSERT (САНУУЛГА)

Page 6: PL SQL -Г ХЭРХЭН АШИГЛАХ

UPDATE ХҮСНЭГТИЙН_НЭР SET МЭДЭЭЛЭЛ ОРУУЛАХ БАГАННЫ НЭР

=ОРУУЛАХ МЭДЭЭЛЭЛ

WHERE БАГАННЫ НЭР =НӨХЦӨЛ;

UPDATE TEST_DAVAA_TRN SET TEST_NAME='ANKHAA TEST',

TEST_NUM=140826 WHERE TEST_NUM=20140828;

COMMIT!

UPDATE (САНУУЛГА)

Page 7: PL SQL -Г ХЭРХЭН АШИГЛАХ

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!

DELETE (САНУУЛГА)

Page 8: PL SQL -Г ХЭРХЭН АШИГЛАХ

CREATE TABLE – Єгєгдлийн санд шинээр хvснэгт vvсгэнэ.

ALTER TABLE - Єгєгдлийн санд vvссэн хэснэгтийг засварлана.

DROP TABLE – Єгєгдлийн санд байгаа хvснэгтийг устгана.

TRUNCATE TABLE – Єгєгдлийн санд байгаа хvснэгтийн мэдээллийг цэвэрлэнэ.

TABLE

Page 9: PL SQL -Г ХЭРХЭН АШИГЛАХ

CREATE TABLE ХҮСНЭГТИЙН_НЭР

(БАГАННЫ НЭР ТӨРӨЛ);

CREATE TABLE TEST_DAVAA_TRN2(

TEST_NAME VARCHAR2(50), TEST_NUM NUMBER(10), TEST_DATE DATE

);

ШАЛГАХДАА SELECT * FROM TEST_DAVAA_TRN2;

TABLE ҮҮСГЭХ

Page 10: PL SQL -Г ХЭРХЭН АШИГЛАХ

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 ЗАСАХ (САНУУЛГА)

Page 11: PL SQL -Г ХЭРХЭН АШИГЛАХ

TRUNCATE TABLE ХҮСНЭГТИЙН_НЭР ; DELETE FROM ХҮСНЭГТИЙН_НЭР ;

COMMIT!

TRUNCATE TABLE TEST_DAVAA_TRN;

DELETE FROM TEST_DAVAA_TRN; COMMIT!

TABLE ЦЭВЭРЛЭХ

Page 12: PL SQL -Г ХЭРХЭН АШИГЛАХ

DROP TABLE ХҮСНЭГТИЙН_НЭР ; DROP TABLE TEST_DAVAA_TRN2;

TABLE УСТГАХ (САНУУЛГА)

Page 13: PL SQL -Г ХЭРХЭН АШИГЛАХ

ӨӨРСДИЙН ХҮСНЭГТҮҮДИЙГ ҮҮСГЭЖ ДЭЭРХ ҮЙЛДЛҮҮДИЙГ ХИЙХ

ЖИШЭЭ ХИЙХ

Page 14: PL SQL -Г ХЭРХЭН АШИГЛАХ

Анхаарал тависанд баярлалаа!!!

Page 15: PL SQL -Г ХЭРХЭН АШИГЛАХ

Хэрхэн хоорондоо холбогддог◦ Хүснэгтүүд бүх мэдээллээ шууд нэг дор

ашигладаггүй. Заавал 2 хүснэгт нийлж бүрэн бүтэн мэдээлэл харуулдаг. Мөн бүх table-үүд өөрсдийн гэсэн id-тай бөгөөд тухайн id-аараа хоорондоо холбогддог.

◦ Жишээ нь: нийт нэхэмжлэхний мэдээлэл харая гэхэд надад нэхэмжлэхний мэдээлэл, аль компанийх болон ямар ямар нийлүүлэгчээс авсан гэх мэт 3 өөр төрлийн table ашиглах шаардлага гарна.

Oracle хүснэгтүүд

Page 16: PL SQL -Г ХЭРХЭН АШИГЛАХ

CUX TABLES :CUX_DD_ITEM_IMPORT_TEMP

AP INVOICE HEADER TABLE:AP_INVOICES_ALL

EAM WO TABLE:WIP_ENTITIES

Customized болон ORACLE-Н TABLE-ҮҮД

Page 17: PL SQL -Г ХЭРХЭН АШИГЛАХ

Transaction болгон ерөнхийдөө header, line, distribution гэсэн table-үүдийдэд хуваагдаж мэдээллүүдээ хадгалдаг.Жишээ: Po_headers_allPo_lines_allPo_distributions_all

Query хийгээд Excel-рүү гаргах.

Customized болон ORACLE-Н TABLE-ҮҮД

Page 18: PL SQL -Г ХЭРХЭН АШИГЛАХ

View гэдэг нь ямар нэгэн хүснэгтийн мэдээллүүдийг хүснэгтээс нь дахин дахин дуудхын оронд өөрт хэрэгцээтэй байдлаар хэд хэдэн хүснэгтүүдийн нэгтгээд нэг газар хадгалж хэрэглэхэд хэрэглэгддэг хүснэгт маягийн зүйл юм.

Жишээ: Oracle-н view HR_OPERATING_UNITS PO_VENDORS

Oracle view-үүд

Page 19: PL SQL -Г ХЭРХЭН АШИГЛАХ

CREATE OR REPLACE FUNCTION function_name(input variable)

RETURN returning_type IS|AS [declaration block] BEGIN

<PL/SQL block WITH RETURN statement> RETURN <return_value>;[EXCEPTION EXCEPTION block] RETURN <return_value>;

END;

PL/SQL Functions

Page 20: PL SQL -Г ХЭРХЭН АШИГЛАХ

Процедур нь функц-тэй бараг адилхан ялгаа нь гэвэл олон өгөгдөл буцаах боломжтой.

PROCEDURE procedure_name (input variable) IS[declaration block]

BEGIN <PL/SQL block WITH RETURN statement>

RETURN <return_value>;[EXCEPTION EXCEPTION block] RETURN <return_value>;

END procedure_name;

PL/SQL PROCEDURE

Page 21: PL SQL -Г ХЭРХЭН АШИГЛАХ

Дээр дурдсан функц болон процедур доторх declaration хэсэгт нь хэрэглэгддэг дотроо бүрэн бүтэн SQL-н код агуулсан талбар юм.

CURSOR cursor_name IS<SQL code block>;

PL/SQL CURSOR

Page 22: PL SQL -Г ХЭРХЭН АШИГЛАХ

Package нь функц, cursor, процедуруудыг хооронд нь холболт хийсэн груп коднуудын нэгдэл.

Package нь заавал толгой бие гэсэн 2 тусдаа хэсгээс бүрдэнэ.

Толгой хэсэгтээ ямар ямар функц ашиглах ямар төрлийн тогтмол хувьсагчид ашиглахаа тодорхойлж өгнө.

Бие хэсэгт нь тухайн тодорхойлсон зүйлсүүдээ ашиглан бүрэн бүтэн кодоо бичэж өгнө.

Package болгон заавал нэг main процедуртай байна.

PL/SQL PACKAGE

Page 23: PL SQL -Г ХЭРХЭН АШИГЛАХ

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_name isPROCEDURE 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 ;

PL/SQL PACKAGE

Page 24: PL SQL -Г ХЭРХЭН АШИГЛАХ

Компани бүрийн WO-н тоог статус статус-р харуулах код бичнэ.

Бичсэн кодоороо package үүсгэх.

Хэрэглэгдэх зүйлс:

EAM_WORK_ORDERS_V org_organization_definitions Count функц ашиглах

Жишээ

Page 25: PL SQL -Г ХЭРХЭН АШИГЛАХ

COMPANY WORK_ORDER_STATUS_PENDING COUNT(WO.ROW_ID)1 ERA Cancelled 62 ERA Closed 33 ERA Complete 24 ERA Draft 115 ERA Failed Close 426 ERA Released 1157 ERA Released - Pending 78 ERA Unreleased 19 ETA Approved 110 ETA Cancelled 393511 ETA Cancelled By PM 45912 ETA Closed 113 ETA Complete 125614 ETA Draft 1215 ETA Released 38516 ETA Released - Pending 4217 ETA Unreleased 33218 LAL Closed 637419 LAL Complete 620 TGA Approved 1221 TGA Cancelled 1222 TGA Cancelled By Approver 50223 TGA Closed 6124 TGA Complete 19025 TGA Draft 125026 TGA On Hold 127 TGA Released 1368728 TGA Released - Pending 6029 TGA Unreleased 2230 UPA Cancelled 2831 UPA Closed 14532 UPA Complete 1633 UPA Draft 434 UPA Failed Close 5835 UPA Released 736 UPA Released - Pending 637 WSA Approved 738 WSA Cancelled 639 WSA Cancelled By Approver 540 WSA Closed 2241 WSA Complete 842 WSA Draft 3143 WSA Failed Close 144 WSA Pending Close 145 WSA Released 7246 WSA Released - Pending 747 WSA Unreleased 1

Үр дүн нь