ようこそ (Jyokoso) MY BLOG

いらっしゃいませ (hajimemashite) สำหรับผู้เข้าใหม่นะค่ะ ^^V

23 สิงหาคม 2564

Error of muji's diffuser

เช้าวันจันทร์ 23/08/2021
เป็นเริ่มต้นที่ดีสำหรับสิ่งใหม่ๆ
เช้าวันที่แสนธรรมดาที่วันนี้คิดว่าก็คงต้องนั่งแก้งานไป เลยอยากมีไรแปลกใหม่บ้าง เลยเอาเครื่อง diffuser ของ muji มา เปิดใช้ในรอบหลายเดือน

เติมน้ำ เติม oil เรียบร้อย พอกดเปิดเท่านั้นแหล่ะ

ปี๊ด ปี๊ด ปี๊ด!!! ดับ อืม... นี่คือชีวิตโปรแกรมเมอร์ใช่ไหม ต้องแก้บัคอยู่ร่ำไป นี่มันเช้าอยู่เลยนะ

คู่มือไม่อยู่แล้ว เอาอาการไป search ในเน็ท พี่goo ก็ไม่เจอ เลยหา manual ดีนะที่เจอ


ทำตามที่บอก ปิดค้างเปิดใหม่ เช็ดโน่นนั่นนี่ สุดท้าย อันนี้เวิร์คสุด


สำลี คัตเติ้ลบัต นี่แหล่ะถูไปตรงกลาง ที่เครื่องจะสั่นไอโอนิคมันมีตะกอนแหล่ะ

จบไปอย่างสวยงาม





16 มิถุนายน 2563

check dup with over partition by instead having multi subquery

WITH SUBVEN1 AS (
  SELECT DISTINCT MATERIAL_NO,SUPPLIER_CODE 
  FROM SUBMAT_VENDOR
  WHERE INTERFACE_FILE_NAME = INF_FILE_NAME_ERR 
  AND MATERIAL_NO IS NOT NULL
), CHECKDUP AS (
  SELECT MATERIAL_NO,SUPPLIER_CODE, count(1) over (partition by MATERIAL_NO) AS s
  FROM  SUBVEN1 
)
SELECT *
FROM CHECKDUP
WHERE s = 1;

13 กันยายน 2562

set time window sleep

set time window sleep

file.vbs

Set WshShell = WScript.CreateObject("WScript.Shell") 'create \windows\system32 
Do While 1=1
     WshShell.SendKeys "^%" '^ = ctrl  % alt --> ASCII
WScript.Sleep 60000 '60*1000  = 60 second = 1 minutes
Loop



For SHIFT prefix with +
For CTRL  prefix with ^
For ALT   prefix with %

26 สิงหาคม 2562

09 เมษายน 2562

like in sql oracle

SELECT *
FROM names
WHERE regexp_like (name , 'be|ae') ; << like in ( be, ae)

NAME
-------------------------
Baer
Abel
Raphaely
Greenberg

30 กันยายน 2561

คำศัพท์ที่ใช้ใน BI มีดังต่อไปนี้

Data Warehouses
คือโครงสร้างแบบเดี่ยวที่เก็บ Cube 1 Cube หรือมากกว่านั้น โดย Data Warehouses ถูกใช้ในการพักข้อมูลที่มีการ aggregate แล้ว หรือ ใช้สำหรับอ่านอย่างเดียว (report) หรือใช้ในมุมมองข้อมูลหลักขององค์กร

Data Marts
ถูกนิยามว่าเป็น subset ของข้อมูลขนาดใหญ่ หรือพูดให้เข้าใจง่ายๆก็คือ Data Warehouses ของแต่ละแผนกนั่นเอง

Cubes
สำหรับ BI Cube ก็คือโครงสร้างข้อมูลที่ถูกใช้โดย Data Warehouses ซึ่งภายในคิวบ์ก็คือความสัมพันธ์ของตารางต่างๆ โดยคิวบ์จะจัดเก็บ dimension และ measure เอาไว้ และคิวบ์สามารถที่จะจัดเก็บข้อมูลที่มีการคำนวณไว้ล่วงหน้าก่อนแล้วก็ได้

Decision Support Systems
หรือเรียกกันว่าระบบสนับสนุนช่วยในการตัดสินใจ ในเชิงความหมายก็คือเป็นระบบที่ช่วยในการแสดงข้อมูลที่ได้จากการทำ OLTP และ OLAP cubes หรือ ทั้ง 2 อย่างก็ได้ ในเชิงธุรกิจหรือการทำงานจะเป็นระบบที่ช่วยสนับสนุนการตัดสินใจของผู้บริกหาร เช่น ระบบที่ช่วยแสดงรายงานต่างๆ เพื่อใช้สำหรับวิเคราะห์แนวโน้มการลงทุนในอนาคต ซึ่งช่วยเพิ่มโอกาสทางการแข่งขันมากขึ้นได้

Data Mining Systems
ในขณะนี้ที่ OLAP ถูกใช้ในเรื่องของการช่วยตัดสินใจข้อมูลที่มีอยู่ Data Mining จะถูกใช้ใน OLAP อีกทีหนึ่งโดย Data Mining จะช่วยหาความสัมพันธ์ที่ซ่อนเร้นอยู่ใน Cubes หรือ ข้อมูลที่มีจำนวนมากๆได้ โดยที่บางทีเราอาจไม่รู้ข้อมูลที่เรามีอยู่นั้นมีประโยชน์เพียงใด เช่น ในเดือนธันวาคมปี 2007 มีลูกค้าซื้อรถสีแดงจำนวน 2 ครั้ง เท่ากับรถสีดำโดยลูกค้าที่ซื้อนั้นจะเป็นผู้อาศัยที่อยู่ในย่านที่มีรหัสไปรษณีย์คือ 90201 ไปจนถึง 90207 โดย Data Mining จะเก็บข้อมูลที่เกิดขึ้นบ่อยๆซ้ำๆ แล้วเอามาวิเคราะห์ทำนายผล

Extract, Transform, and Load System
หรือเรียกสั้นๆว่า ETL หมายถึงขั้นตอนกระบวนการทำงานต่างๆ เพื่อนำข้อมูลจากแหล่งต่างๆเข้าสู่ Data Warehouses โดยที่

Extract - ทำหน้าที่ดึงข้อมูลจากแหล่งต่างๆเข้ามา
Transform - ทำหน้าแปลงข้อมูลที่ได้จากการ Extract มาแปลงให้อยู่ในรูปแบบที่เหมาะสม เช่น ทำ Classing, Mapping Data
Load - ทำหน้าที่นำข้อมูลเข้า Data Warehouses

Reporting Process Systems
BI Solution ส่วนใหญ่ใช้ Report มากกว่า 1 ชนิดเนื่องจากความต้องการที่ต่างกันของผู้ใช้ สิ่งสำคัญในการวางแผน BI Solution ก็คือ ต้องใช้เครื่องมือทำ report อย่างระมัดระวัง

Key Performance Indicators
หรือ KPIs หมายถึงเครื่องมือที่ใช้วัดการดำเนินหรือประเมิณงานในด้างต่างๆขององค์กร ในรูปของข้อมูลเชิงปริมาณเพื่อสะท้อนประสิทธิภาพและประสิทธิผลในการปฎิบัติงานในองค์กรนั้น


อ้างอิงจาก https://how-to-bi.blogspot.com

06 กันยายน 2561

NOCOPY

SET SERVEROUTPUT ON;
DECLARE
   n NUMBER := 10;
   PROCEDURE do_something (
      n1 IN NUMBER,
      n2 IN OUT NUMBER,
      n3 IN OUT NOCOPY NUMBER) IS
   BEGIN
      n2 := 20;
      DBMS_OUTPUT.put_line(n1);  -- prints 10
      n3 := 30;
      DBMS_OUTPUT.put_line(n1);  -- prints 30
   END;
BEGIN
   do_something(n, n, n);
   DBMS_OUTPUT.put_line(n);  -- prints 20
END;

21 มิถุนายน 2561

delete Dupplicate

 --------------------------------------delete Dupplicate---------------------------
 delete FCI_TBL_PC_I_14_PI_MOVEMENT
where ( rowid,transaction_id) in (select max(rowid),transaction_id
from FCI_TBL_PC_I_14_PI_MOVEMENT
where bus_place_code = '0002'
and transaction_date between  '20170801' and  '20170831'
and part_no ='4N15087'
group by transaction_id)
and  bus_place_code = '0002'
and transaction_date between  '20170801' and  '20170831'
and part_no ='4N15087'

25 พฤษภาคม 2561

ORA-00600: internal error code, arguments: [kcblasm_1],...

เกิด จาก group by ลองใส่ hint  /*+ no_use_hash_aggregation */  ไว้หายจ้า

  CREATE OR REPLACE FORCE VIEW "JFCI"."FCI_VIW_PC_LIV11" ("TRN_BNO", "TRN_SEG", "TRN_VOU", "TRN_DTE", "TRN_DOC_DUE", "TRN_ACC", "TRN_VENDOR", "TRN_VNAME", "TRN_DR", "TRN_CR", "TRN_DR_CURR", "TRN_CR_CURR", "TRN_CURR", "TRN_EXCH", "TRN_BL_DATE", "TRN_PMT", "TRN_NAR", "TRN_INV", "TRN_INV_DATE", "TRN_EQNO", "TRN_PAYTERM", "TRN_LOC", "TRN_SYS", "TRN_CREATE", "TRN_WHT_CODE", "TRN_WHT_BASE", "TRN_STREET", "TRN_CITY", "TRN_TAX_CODE", "TRN_PROFIT", "VOUCHER_NO", "AP_INV", "INV_NO", "FI_DOC_NUMBER", "VENDOR_CODE", "EXPORT_TYPE", "TRN_BUS_AREA") AS
  SELECT /*+ no_use_hash_aggregation */ TRN_BNO,
            TRN_SEG,
            TRN_VOU,
            TRN_DTE,
            TRN_DOC_DUE,
            TRN_ACC,
            TRN_VENDOR,
            TRN_VNAME,
            SUM (TRN_DR) TRN_DR,
            SUM (TRN_CR) TRN_CR,
            SUM (TRN_DR_CURR) TRN_DR_CURR,
            SUM (TRN_CR_CURR) TRN_CR_CURR,
            TRN_CURR,
            TRN_EXCH,
            TRN_BL_DATE,
            TRN_PMT,
            TRN_NAR,
            TRN_INV,
            TRN_INV_DATE,
            TRN_EQNO,
            TRN_PAYTERM,
            TRN_LOC,
            TRN_SYS,
            TRN_CREATE,
            TRN_WHT_CODE,
            TRN_WHT_BASE,
            TRN_STREET,
            TRN_CITY,
            TRN_TAX_CODE,
            TRN_PROFIT,
            VOUCHER_NO,
            AP_INV,
            INV_NO,
            FI_DOC_NUMBER,
            VENDOR_CODE,
            EXPORT_TYPE,
            TRN_BUS_AREA
       FROM (  SELECT DECODE(HD.COM_CODE,'1000','Y ','3000','K ') TRN_BNO,
                      '       ' TRN_SEG,
                      DAYEND.VOUCHER_NO AS TRN_VOU,
                      DECODE(NVL(HD.CANCEL_DATE, ' '),' ',
                          TO_CHAR (TO_DATE (HD.AP_DATE, 'YYYYMMDD'),'DDMMYYYY'),
                          DECODE(SUBSTR(DAYEND.FI_DOC_NUMBER,1,2),'ZA' ,TO_CHAR (TO_DATE (SUBSTR(HD.CANCEL_DATE,1,8), 'YYYYMMDD'),'DDMMYYYY'),HD.CANCEL_DATE)) TRN_DTE,
                      hd.inv_date TRN_DOC_DUE,
                      ITEM.GLACCOUNT AS TRN_ACC,
                      HD.VENDOR_CODE AS TRN_VENDOR,
                      VEN.VENDOR_NAME AS TRN_VNAME,
                      ITEM.DC_INDICATOR DC_INDICATOR,
                      DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_LOC,0) TRN_DR,
                      DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_LOC,0) TRN_CR,
                      DECODE(ITEM.DC_INDICATOR,'D',ITEM.AMOUNT_DOC,0) TRN_DR_CURR,
                      DECODE(ITEM.DC_INDICATOR,'C',ITEM.AMOUNT_DOC,0) TRN_CR_CURR,
                      DECODE(NVL(HD.DOC_CURR,' '),' ','THB',HD.DOC_CURR) TRN_CURR,
                      HD.EXCH_RATE AS TRN_EXCH,
                      DECODE(SIGN(LENGTH(NVL(HD.BILL_DATE,' '))-8),1,
                          TO_CHAR(TO_DATE(HD.BILL_DATE, 'YYYYMMDD'),'DDMMYYYY'),
                          HD.BILL_DATE) TRN_BL_DATE,
                      VEN.PAY_METH AS TRN_PMT,
                      '' AS TRN_NAR,
                      DAYEND.INV_NO AS TRN_INV,
                      TO_CHAR (TO_DATE (HD.INV_DATE, 'YYYYMMDD'), 'DDMMYYYY') AS TRN_INV_DATE,
                      ' ' AS TRN_EQNO,
                      VEN.PAY_TERM AS TRN_PAYTERM,
                      CASE
                         WHEN HD.PLANT_CODE = 'D'
                         THEN
                            'LCB2'
                         WHEN HD.PLANT_CODE = 'H'
                         THEN
                            'LCB4'
                         WHEN HD.PLANT_CODE = 'F'
                         THEN
                            'LCB1'
                         WHEN HD.PLANT_CODE = 'G'
                         THEN
                            'LCB3'
                         WHEN HD.PLANT_CODE = 'B'
                         THEN
                            'MEC'
                         WHEN HD.PLANT_CODE = 'X'
                         THEN
                            'LCB2'
                         WHEN     NVL (HD.PLANT_CODE, ' ') = ' '
                              AND HD.COM_CODE = '3000'
                         THEN
                            'MEC'
                         WHEN     NVL (HD.PLANT_CODE, ' ') = ' '
                              AND HD.COM_CODE = '1000'
                              AND HD.BUS_PLACE_CODE = '0009'
                         THEN
                            'LCB3'
                         WHEN     NVL (HD.PLANT_CODE, ' ') = ' '
                              AND HD.COM_CODE = '1000'
                              AND HD.BUS_PLACE_CODE = '0002'
                         THEN
                            'LCB2'
                         WHEN     NVL (HD.PLANT_CODE, ' ') = ' '
                              AND HD.COM_CODE = '1000'
                              AND HD.BUS_PLACE_CODE = '0013'
                         THEN
                            'LCB4'
                      END
                         AS TRN_LOC,
                      TO_CHAR (SYSDATE, 'DDMMYYYY') AS TRN_SYS,
                      HD.CREATED_BY AS TRN_CREATE,
                      HD.VAT_CODE AS TRN_WHT_CODE,
                      0 AS TRN_WHT_BASE,
                      '' AS TRN_STREET,
                      '' AS TRN_CITY,
                      '' AS TRN_TAX_CODE,
                      NVL (BOI.PROFIT, ' ') AS TRN_PROFIT,
                      DAYEND.VOUCHER_NO AS VOUCHER_NO,
                      DAYEND.AP_INV AS AP_INV,
                      DAYEND.INV_NO AS INV_NO,
                      DAYEND.FI_DOC_NUMBER AS FI_DOC_NUMBER,
                      DAYEND.VENDOR_CODE AS VENDOR_CODE,
                      DAYEND.EXPORT_TYPE AS EXPORT_TYPE,
                      HD.BUS_AREA_CODE TRN_BUS_AREA
                 FROM FCI_TBL_PC_E_DAYEND_INVOICE DAYEND
                      INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_HD HD
                         ON     DAYEND.BUS_PLACE_CODE = HD.BUS_PLACE_CODE
                            AND DAYEND.INV_NO = HD.INV_NO
                            AND DAYEND.AP_INV = HD.AP_INV
                            AND DAYEND.FI_DOC_NUMBER = HD.ACC_CODE
                      INNER JOIN FCI_TBL_LIV_T_FI_ITEM ITEM
                         ON     HD.COM_CODE = ITEM.COM_CODE
                            AND HD.BUS_AREA_CODE = ITEM.BUS_AREA_CODE
                            AND HD.ACC_CODE = ITEM.FI_DOC_NUMBER
                      LEFT OUTER JOIN FCI_TBL_LIV_M_VENDOR VEN
                         ON     HD.VENDOR_CODE = VEN.VENDOR_CODE
                            AND HD.COM_CODE = VEN.COM_CODE
                      LEFT OUTER JOIN FCI_TBL_LIV_M_EXCHANGE_RATE EXCH
                         ON ITEM.EXRATE_CODE = EXCH.EXCH_RATE_TYPE
                      INNER JOIN FCI_TBL_LIV_T_MAN_VOUCHER_IT IT
                         ON     IT.COM_CODE = HD.COM_CODE
                            AND ITEM.FI_DOC_NUMBER = HD.ACC_CODE
                            AND IT.COM_CODE = HD.COM_CODE
                            AND IT.AP_INV = HD.AP_INV
                            AND IT.ITEM_NO = ITEM.ITEM_NO
                      LEFT OUTER JOIN FCI_TBL_PC_M_PROFIT_FOR_BOI BOI
                         ON BOI.PROD_CODE = IT.MODEL_NAME
                WHERE NVL (DAYEND.LIV11EXPORTED_DATE, ' ') = ' '
             --        AND DAYEND.voucher_no = 'CF201207000001'
             ORDER BY ITEM.FI_DOC_NUMBER, ITEM.DC_INDICATOR DESC, ITEM.ITEM_NO)
   GROUP BY TRN_BNO,
            TRN_SEG,
            TRN_VOU,
            TRN_DTE,
            TRN_DOC_DUE,
            TRN_ACC,
            TRN_VENDOR,
            TRN_VNAME,
            TRN_CURR,
            TRN_EXCH,
            TRN_BL_DATE,
            TRN_PMT,
            TRN_NAR,
            TRN_INV,
            TRN_INV_DATE,
            TRN_EQNO,
            TRN_PAYTERM,
            TRN_LOC,
            TRN_SYS,
            TRN_CREATE,
            TRN_WHT_CODE,
            TRN_WHT_BASE,
            TRN_STREET,
            TRN_CITY,
            TRN_TAX_CODE,
            TRN_PROFIT,
            VOUCHER_NO,
            AP_INV,
            INV_NO,
            FI_DOC_NUMBER,
            VENDOR_CODE,
            EXPORT_TYPE,
            TRN_BUS_AREA,
            DC_INDICATOR
   ORDER BY TRN_BNO,
            TRN_SEG,
            TRN_VOU,
            TRN_DTE,
            TRN_DOC_DUE,
            TRN_ACC,
            TRN_VENDOR,
            TRN_VNAME,
            TRN_DR_CURR,
            TRN_CR_CURR,
            TRN_CURR,
            TRN_EXCH,
            TRN_BL_DATE,
            TRN_PMT,
            TRN_NAR,
            TRN_INV,
            TRN_INV_DATE,
            TRN_EQNO,
            TRN_PAYTERM,
            TRN_LOC,
            TRN_SYS,
            TRN_CREATE,
            TRN_WHT_CODE,
            TRN_WHT_BASE,
            TRN_STREET,
            TRN_CITY,
            TRN_TAX_CODE,
            TRN_PROFIT,
            VOUCHER_NO,
            AP_INV,
            INV_NO,
            FI_DOC_NUMBER,
            VENDOR_CODE,
            EXPORT_TYPE,
            TRN_BUS_AREA;


07 มกราคม 2560

ของขวัญปีใหม่, วาเลนไทน์, วันแม่ โอกาสพิเศษ ของถูก และดี ที่นี่เลย

อยากได้ของขวัญให้สาวๆ ให้แม่ หรือจะรับไปขายต่อ รับรองถูกใจแน่ๆ ค่ะ น่ารัก
ดอกไม้ถัก งานฝีมือ ^_^ น่ารักมากๆ ค่ะ
แม่ค้าใจดีมากๆ สั่งเยอะก็ลด ส่งฟรี แถมยังมีของแถมให้ด้วยค่ะ
เทศกาลนี้ใครยังไม่รู้จะซื้ออะไรก็ลองดู link ที่ให้ไว้ข้างล่าง หรือโทรติดต่อได้จ้า
สอบถามได้ ถึงแม้ไม่สั่งซื้อ แม่ค้ายินดีตอบทุกคำถามจ๊ะ







site : http://mayooree.lnwshop.com/
mail : mayooree123@hotmail.com
tel: 0899837747

30 กันยายน 2556

Analyze Table

มีหลายแบบค่ะ ถ้าบน Sql Developer

right click ที่ table ที่จะทำการ analyze  >> statistics >> gather statistics...

แบบที่ 2 คือ

analyze table EMP compute statistics;
หรือ
analyze table EMP estimate statistics sample 60 percent;
เปลี่ยน EMP เป็นชื่อ table ที่ต้องการ

29 กันยายน 2556

ความรู้เบื่องต้นเรื่องรถ

เช็คสภาพรถ
1. ยางล้อรถ ยาอ่อน เติมลมอยู่ที่ขนาดวงล้อ อย่าง 14 นิ้ว ก็เติม 28-30 ปอนด์
2. ระดับน้ำหล่อเย็น ควรจะมีอยู่ถึงระดับสูงสุดในถังพักสำรอง
3. ดูน้ำมัน ดึงมาดูระดับ L คือต่ำเกินไป จาก L-F ประมาณ 1 lit

ก่อนขับรถ
1. คาดเข็มขัด
2. ใส่เกียร์ P หรือ N
3. ไฟหน้าไม่มีอะไรขึ้นสีแดง แดง เช่นน้ำมันหมด ปิดประตูไม่สนิท ใส่เบรคมือ ระวัง OD ด้วย overdrive

จอดรถ : ตรวจสอบก่อนจะดับเครื่อง
1. เกียร์ N หรือ P
2. ดับแอร์
3. เครื่องเสียง (ไม่ดับก็ได้)
4. ดับไฟหน้ารถ เวลาเปิดไว้มักลืมปิด

14 กันยายน 2555

Bulk Load Oracle 10G

declare
    l_cnt   pls_integer := 20;
    l_start number;
    l_run   number;
begin
    l_start := dbms_utility.get_time;
          for i in 1..l_cnt loop
                   explicit_cursor; <<  Cursor…open loop…
fetch into
          end loop;
    l_run := dbms_utility.get_time - l_start;
    dbms_output.put_line ('run 1 in .... '||l_run||' hsecs');
    
    l_start := dbms_utility.get_time;
          for i in 1..l_cnt loop
                    implicit_cursor_1; <<  Cursor…for loop
          end loop;
    l_run := dbms_utility.get_time - l_start;
    dbms_output.put_line ('run 2 in .... '||l_run||' hsecs');
    
    l_start := dbms_utility.get_time;
          for i in 1..l_cnt loop
                    implicit_cursor_2; <<  for (select)loop
          end loop;
    l_run := dbms_utility.get_time - l_start;
    dbms_output.put_line ('run 3 in .... '||l_run||' hsecs');
    
    l_start := dbms_utility.get_time;
          for i in 1..l_cnt loop
                    explicit_cursor_bulk; <<  Cursor…open loop…fetch…
bulk collect into…limit
          end loop;
    l_run := dbms_utility.get_time - l_start;
    dbms_output.put_line ('run 4 in .... '||l_run||' hsecs');
end;
run 1 in .... 311 hsecs <<  explicit_cursor แย่สุด
run 2 in .... 18 hsecs <<  implicit_cursor_1

เท่ากัน * หมายเหตุ ถ้าไม่ใช้ Ver. 10g ขึ้นไป 
 จะมีความเร็วไม่ต่างจากแบบที่ 1 มากนัก 
จะเร็วเพียงเล็กน้อย แต่ถ้าเป็น 10g 
 มีการปรับปรุง for loop ให้เป็นแบบ array
run 3 in .... 18 hsecs <<  implicit_cursor_2
run 4 in .... 14 hsecs << explicit_cursor_bulk ดีสุด

12 กันยายน 2555

merge into using on


MERGE
     INTO  target_table tgt
     USING source_table src
     ON  ( src.object_id = tgt.object_id )
  WHEN MATCHED -- เมื่อ match กัน คือเมื่อ src.object_id = tgt.object_id
  THEN -- update data ให้ name และ type ของ table target_table = name
          และ type ของ table source_table
      UPDATE
      SET   tgt.object_name = src.object_name
      ,     tgt.object_type = src.object_type
   WHEN NOT MATCHED -- เมื่อไม่ match กัน คือเมื่อ src.object_id != tgt.object_id 
   THEN --insert data จาก table source_table ลง table target_table
      INSERT ( tgt.object_id
             , tgt.object_name
             , tgt.object_type )
      VALUES ( src.object_id
             , src.object_name
             , src.object_type );

31 กรกฎาคม 2555

วิธีแก้ select xml data จาก oracle database (ORA-19025: EXTRACTVALUE returns value of only) โดยใช้ xmlsequence


SELECT  extractValue(y.column_value, '/C_CUST_OWNER/@id') cust_id
FROM    tbl_item_po_xml t,table (xmlsequence(extract(t.xml_data,'/INTERNAL_PRD_CODES/INTERNAL_PRD_CODE/WAREHOUSE_NOS/WAREHOUSE_NO'))) x,table (xmlsequence(extract(x.column_value,'/WAREHOUSE_NO/C_CUST_OWNERS/C_CUST_OWNER'))) y
WHERE   C_FILE_NAME = c_file_name
AND     extractValue(t.xml_data, '/INTERNAL_PRD_CODES/INTERNAL_PRD_CODE/@id') = j.prd_code
AND     extractValue(x.column_value, '/WAREHOUSE_NO/@id') = k.wh_no