Query-г зөв, оновчтой бичих нь программын гүйцэтгэлийн амин сүнс болохоос гадна код бичих, тест хийх, бааг илрүүлэх үеийн ажлыг ихээхэн хөнгөвчилдөг. Энэ постоороо түгээмэл тулгардаг асуудлуудыг энгийнээр шийдэх хэдэн query-г хүргэе. Зарим нь өдөр тутмын хар бор кодчилолд төдийлөн хэрэглэгддэгүй ч байж магадгүй. Гэхдээ харж байгаагүй юм хэрэг болдоггүй гэдэг шиг мэдэж аваад, хэрэглээд сурчихвал юм болгонд л хэрэг болохыг үгүйсгэхгүй.
1. DUAL table
Oracle дээр 1 мөр, 1 баганатай DUAL table анхнаасаа үүссэн байдаг ба ямар нэгэн илэрхийллийн үр дүнг select хийхэд ашиглавал тохиромжтой. Ж: select SYSDATE from dual -- Системийн огоог харах
select 18 * 10 from dual -- Илэрхийллийн үр дүнг харах
2. Сарын эхний өдрийг харах
SELECT TRUNC (SYSDATE, 'MONTH') "First day of current month" FROM DUAL
3. Сарын сүүлийн өдрийг харах
SELECT TRUNC (LAST_DAY (SYSDATE)) "Last day of current month" FROM DUAL
4. Сарын өдрийн тоог харах
SELECT CAST (TO_CHAR (LAST_DAY (SYSDATE), 'dd') AS INT) number_of_days FROM DUAL
5. Хоёр огнооны хоорон дахь өдрийн тоо
SELECT TRUNC(sysdate) - TRUNC(p.created_datetime) FROM Person p
6. Өгөгдсөн нэртэй тэйбл байгаа байгаа эсэхийг шалгах
SELECT table_name FROM user_tables WHERE table_name = 'TABLE_NAME'
7. Тэйблийн багануудыг харах, өгөгдсөн нэртэй багана тухайн тэйблд байгаа эсэхийг шалгах
select * from user_tab_cols where table_name = 'PERSON'
select * from user_tab_cols where table_name = 'PERSON' and column_name = 'PERSON_ID'
8. Table, view-н бүтцийг харах
SELECT DBMS_METADATA.get_ddl ('TABLE', 'PERSON', 'SCHEMA_NAME') FROM DUAL
SELECT DBMS_METADATA.get_ddl ('VIEW', 'VW_PERSON', 'SCHEMA_NAME') FROM DUAL
Эхний параметр нь тэйбл бол TABLE, view бол VIEW утга авна. Toad юм уу SQL Developer дээр ажиллуулж байгаа бол select-н үр дүнгээр гарч ирэх нүдэнд double click хийж мэдээллийг нь харна.
9. Ажиллаж буй user/schema-г харах
SELECT SYS_CONTEXT ('userenv', 'current_schema') FROM DUAL
10. Баазын хувилбарын мэдээлэл харах
SELECT * FROM v$version
11. User бүрийн table space, temporary table space, profile-н мэдээлэл харах
SELECT username, profile, default_tablespace, temporary_tablespace FROM dba_users
12. Баазын нийт хэмжээг харах
SELECT SUM (bytes) / 1024 / 1024 / 1024 AS GB FROM dba_data_files
13. Тухайн user/schema-н хэмжээг харах
SELECT SUM (bytes / 1024 / 1024) "size" FROM dba_segments WHERE owner = '&owner'
14. Бааз руу яг одоо холбогдсон байгаа клиентүүдийн жагсаалт харах
SELECT osuser, username, machine, program FROM v$session ORDER BY osuser
15. Тооны англи нэрийг харах (үг болгох)
SELECT TO_CHAR (TO_DATE (198804, 'j'), 'jsp') FROM DUAL
16. Package, procedure, function г.м-н source code-оос текст хайх
SELECT * FROM dba_source WHERE UPPER (text) LIKE '%WRITELOG%' AND owner = 'USER_NAME'
17. Table, view, index г.м бүх объектын жагсаалт харах.
select object_name, object_type from user_objects
18. Санамсаргүйгээр (random) өгөгдөл үүсгэх.
Тест хийх явцад мянга мянган мөр үүсгэх шаардлага багагүй тохиолддог учраас үүнийг хэрэглээд суричхвал мөн ч их цаг хэмнэнэ. SELECT LEVEL empl_id,
MOD (ROWNUM, 50000) deptartment_id,
TRUNC (DBMS_RANDOM.VALUE (1000, 500000), 2) salary,
DECODE (ROUND (DBMS_RANDOM.VALUE (1, 2)), 1, 'M', 2, 'F') gender,
TO_DATE (
ROUND (DBMS_RANDOM.VALUE (1, 28))
|| '-'
|| ROUND (DBMS_RANDOM.VALUE (1, 12))
|| '-'
|| ROUND (DBMS_RANDOM.VALUE (1900, 2010)),
'DD-MM-YYYY')
BIRTH_DAY,
DBMS_RANDOM.STRING ('x', DBMS_RANDOM.VALUE (20, 50)) DESCRIPTION
FROM DUAL
CONNECT BY LEVEL < 10000
Comments
Post a Comment