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

Post on 05-Jan-2016

106 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

MMC ERP INTERNAL TRAINING #1

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 ЮУ ВЭ?

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

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

SELECT * FROM TEST_DAVAA_TRN;

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

SELECT

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

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

SELECT * FROM TEST_DAVAA_TRNorder by

test_name,test_date;

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

Order by

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

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

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

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

UPDATE TEST_DAVAA_TRN SET TEST_NAME='ANKHAA TEST',

TEST_NUM=140826 WHERE TEST_NUM=20140828;

COMMIT!

UPDATE (САНУУЛГА)

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

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;

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

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

ЖИШЭЭ ХИЙХ

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

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

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

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

Oracle хүснэгтүүд

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_allPo_lines_allPo_distributions_all

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

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

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

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

Oracle view-үүд

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

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

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

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

CURSOR cursor_name IS<SQL code block>;

PL/SQL CURSOR

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_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

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

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

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

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

Жишээ

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

Үр дүн нь

top related