Хэрэв NULL бол ISNULL, IFNULL, NVL

Датабаз дээр null утга бүхий талбар дээр хэрхэн ажиллах талаар тэмдэглээд авая.

Жишээгээр:

SELECT field_mungu + field_tatvar AS niit_mungun_dun FROM tbl_husnegt WHERE ... GROUP BY ... ORDER BY ....

field_mungu нь NULL эсвэл field_tatvar нь NULL утга бол niit_mungun_dun нь NULL гарна. Харин NULL-ийг 0, эсвэл өөр ямар нэгэн тоон /int, double, decimal/ утгаар сольвол эцсийн үр дүн NULL биш тоо гарна.

SELECT ISNULL(field_mungu,0) + ISNULL(field_tatvar,0) AS niit_mungun_dun FROM tbl_husnegt WHERE ... GROUP BY ... ORDER BY ....

Тоон утгууд дээр ажиллахаас гадна тэмдэгтэн /char, string, varchar, nvarchar, text/ утгууд дээр ч ажиллаж болно. Овгийн эхний үсгийг аваад цэг залгаад нэрийг залган /А. Бат/ хэрэглэх үед овог байхгүй бол NULL гарч ирээд байдаг.  Гэх мэтчилэн ямар ч зүйлд ашиглаж болно.

T-SQL буюу MS-SQL : ISNULL( талбарын_нэр, солих утга )

PL-SQL буюу Oracle: NVL( талбарын_нэр, солих утга )

MySQLIFNULL( талбарын_нэр, солих утга )

Advertisements

Visual Studio дээрээс Oracle руу холбогдох нь (3 алхам)

За ASP.NET / C# / Visual Basic гэх мэт Visual Studio дээрээс Oracle датабаз руу холбох алхамуудыг доор жагсаав.

  • Алхам 1. Oracle connector (ODAC) суулгах
  • Алхам 2. TNS (Transparent Network Substrate) тохиргоо
  • Алхам 3. Visual Studio дээр connection үүсгэх

1. Oracle connector (ODAC) суулгах

Ер нь аливаа датабаз руу холбогдохын тулд холбогч багаж заавал хэрэгтэй. Энэхүү холбох багажыг Oracle-н үндсэн сайтнаас үнэгүй татаж авах боломжтой. Java бол JDBC, Visual Studio бол ODAC 11.2 Release 3 (11.2.0.2.1) with Oracle Developer Tools for Visual Studio татаж аваад суулгана. (Суулгасны дараа PC restart хийвэл найдвартай байх.)

2. TNS тохируулах

Oracle-ийн connecter суулгасаны дараа TNS тохиргоо буюу датабаз руу холбох тохиргоог хийнэ. Ингэхдээ “… product\11.1.0\client_1\Network\Admin” файл доторх tnsnames.ora файл дээр холболтын тохиргоог дараах бичнэ.

Жишээ нь Windows дээр бол C:\Program Files\Oracle\product\11.1.0\client_1\Network\Admin дотор tnsnames.ora файл байгаа. Хэрэв файл байхгүй бол Network\Admin\Sample хавтас доторх tnsnames.ora файлыг хуулж Network\Admin хавтас дотор tnsnames.ora нэртэйгээр хуулна.
Холболтын тохиргоог дараах форматаар бичнэ.

data_source_ner1=
 (DESCRIPTION=
 (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
 (CONNECT_DATA=(SERVICE_NAME=database_ner))
 )

data_source_ner2=
 (DESCRIPTION=
 (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
 (CONNECT_DATA=(SERVICE_NAME=database_ner2))
 )

3. Visual Studio

Жишээ нь ASP.NET дээр бол ер нь бол web.config дээр бичихэд болно.

<connectionStrings>

дотор/дараа

<add name="ConnectionString_ner1" 
connectionString="DATA SOURCE=data_source_ner1;USER ID=user_ner;PASSWORD=nuuts_ug; PERSIST SECURITY INFO=True;"  
providerName="Oracle.DataAccess.Client" />

гэж бичээд гүйцээ.

ASP.NET биш C# / Visual basic эсвэл найдвартай нь дээр гэж үзвэл (бүр эсвэл анх удаа) бол форм эсвэл хуудас дээрээ Toolbox хэсгээс SqlDataSource чирч байрлуулна. Configure Data source сонгоод Add New connection товч дараад Oracle Database гэж сонгоод Continue дарна. Add Connection нэртэй цонх гарч ирэхэд Data Source гэсэн хэсгээс Data_source_ner1 сонгоод Use a specific user name and password сонгоод user_ner, nuuts_ug бөглөнө. За тэгээд Test Connection дарахад холбогдож болж байгаа эсэхийг үзүүлнэ. Тэгээд л Ok дараад, connection string-ээ хадгалаад болоо. (Хэрэв ямар нэгэн алдаа гарвал үзүүлсэн алдааны дагуу алдааг засна даа.) Ингэж тохируулахад ASP.NET бол автоматаар web.config дээр connection string биччигдэх буйза.

Oracle дата бааз руу холбох тохиргоо

Дурын мөр SELECT хийх

MYSQL:

SELECT багана_нэр FROM хүснэгт_нэр ORDER BY RAND() LIMIT 10

Oracle:

SELECT багана_нэр FROM ( SELECT column FROM хүснэгт_нэр ORDER BY dbms_random.value ) WHERE rownum <= 10

PostgreSQL:

SELECT багана_нэр FROM хүснэгт_нэр ORDER BY RANDOM() LIMIT 10

MSSQL:

SELECT TOP 10 багана_нэр FROM хүснэгт_нэр ORDER BY NEWID()

Oracle жаахан тиймэрхүү, тэрнээс mysql, postgresql энэ тэр амархан байгааз, тэр mssql-н NEWID() функц нь 36-н урттай unique стринг generate хийдийн, ер нь бол стринг ID болгон хэрэглэдэг л дээ.

%d bloggers like this: