Posts

NLS_LANG хувьсагчийн утгыг өөрчлөх

Image
Оракл дээрээс крилл тэмдэгтээр эсвэл бусад юникод тэмдэгтээр филтер шүүж харахгүй байгаа үед NLS_LANG хувьсагчийн утгыг өөрчлөх хэрэгтэй. Эхлээд доорх query-ээр өөрийн баазын NLS_LANG-ийн утгыг харна.  SELECT  *    FROM  V$NLS_PARAMETERS NLS_LANG-ийн хувьсагчийн утга дараах форматаар үүсгэгдэх ёстой. Миний хувьд дараах байдалтай үүсгэгдэж байна. [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET] AMERICAN_AMERICA.AL32UTF Windows дээр Control Panel > System > Advanced tab > Environment Variables > System variables хэсэг дээр New гэж үүсгээд дээр үүсгэсэн утгаа оруулж өгнө. Unix дээр Терминал дээр  setenv NLS_LANG <NLS_LANG>   команд дээр утгаа оруулж уншуулна. Миний жишээн дээр setenv NLS_LANG AMERICAN_AMERICA.ZHT16BIG5 Хувьсагчаа үүсгээд restart хийсний дараах үр дүн SELECT  address    FROM  table1   WHERE  address  =  'Баянхонгор'  

Query Processing Order - query боловсруулах дараалал

Image
Execution Plan-ий талаар авч үзэхээс өмнө эхлээд бид Ораклын query боловсруулах логик дарааллыг ойлгох нь чухал. Дараах query-г жишээ болгон авч үзье. SELECT        f.product AS beer        , p.product AS crisps    FROM        fridge f        CROSS JOIN        pantry p    WHERE        f.product = 'Beer'      AND f.temperature < 5      AND f.size = '50 fl oz'      AND p.product = 'Crisps'      AND p.style = 'Cream Cheese'      AND p.size = '250g'    ORDER BY        crisps        , beer        ; өөр нэг query: SELECT        product  AS...