Pl sql സ്ട്രിംഗ് പ്രവർത്തനങ്ങൾ. ഒരു ഡാറ്റാബേസിൽ തീയതികൾ സംഭരിക്കുന്നു. സംഖ്യാ പ്രവർത്തനം TRUNC

ഈ ഭാഗത്ത് ഞങ്ങൾ ചർച്ച ചെയ്യുന്ന ഫംഗ്‌ഷനുകൾ സാധാരണയായി എംബഡഡ് PL/SQL കോഡ് ഉപയോഗിക്കുന്നു, ഒറാക്കിൾ പാക്കേജുചെയ്‌ത് വിതരണം ചെയ്യുന്നു. ചിലത് സംഖ്യ, പ്രതീകം, തീയതി മൂല്യങ്ങൾ എന്നിവ പ്രോസസ്സ് ചെയ്യുന്നു, മറ്റുള്ളവ ഡാറ്റയെ വിവിധ ഡാറ്റ തരങ്ങളാക്കി മാറ്റുന്നു. ഫംഗ്‌ഷനുകൾക്ക് നെസ്റ്റഡ് കോളുകൾ ഉപയോഗിക്കാം, ചില ഫംഗ്‌ഷനുകൾ NULL മൂല്യങ്ങളിൽ പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നു. CASE, DECODE കണ്ടീഷൻ ഫംഗ്‌ഷനുകൾ ഡാറ്റാ മൂല്യങ്ങളെ ആശ്രയിച്ച് മറ്റൊരു ഫലം പ്രദർശിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് ഒരു SQL അന്വേഷണത്തിന്റെ പശ്ചാത്തലത്തിൽ ബ്രാഞ്ച് ചെയ്യാനുള്ള കഴിവ് നൽകുന്നു.

ഫംഗ്ഷനുകളെ രണ്ട് വലിയ ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു: ഓരോ വരിയുടെയും മൂല്യങ്ങൾ കണക്കാക്കുന്നവ, എല്ലാ വരികൾക്കും ഒരു കണക്കുകൂട്ടൽ നടത്തുന്നവ. പരിവർത്തന പ്രവർത്തനങ്ങൾ, പ്രതീക ഡാറ്റയുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ, സംഖ്യാ ഡാറ്റ, തീയതി ഡാറ്റ എന്നിവ ഞങ്ങൾ പരിശോധിക്കും.

ഫംഗ്ഷൻ നിർവ്വചനം

ഇൻപുട്ട് പാരാമീറ്ററുകൾ സ്വീകരിക്കാനും ചില പ്രവർത്തനങ്ങൾ നടത്താനും ഒരു അക്ഷര മൂല്യം നൽകാനും കഴിയുന്ന ഒരു പ്രോഗ്രാമാണ് ഫംഗ്ഷൻ. ഫംഗ്‌ഷൻ ഒരു കോളിന് ഒരു മൂല്യം മാത്രം നൽകുന്നു.

മൂന്ന് പ്രധാന ഘടകങ്ങൾ ഒരു ഫംഗ്ഷൻ നിർവചിക്കുന്നതിനുള്ള അടിസ്ഥാനമാണ്. ആദ്യത്തേത് ഇൻപുട്ട് പാരാമീറ്ററുകളുടെ ഒരു ലിസ്റ്റ് ആണ്. പ്രോസസ്സിംഗിനായി ഫംഗ്ഷനിലേക്ക് കൈമാറാൻ കഴിയുന്ന പൂജ്യമോ അതിലധികമോ പാരാമീറ്ററുകൾ ഇത് നിർവ്വചിക്കുന്നു. ഈ പാരാമീറ്ററുകൾ, അല്ലെങ്കിൽ ആർഗ്യുമെന്റുകൾ, ഓപ്ഷണൽ ആയിരിക്കാം (ഒരു ഡിഫോൾട്ട് മൂല്യം ഉണ്ടായിരിക്കും) കൂടാതെ വ്യത്യസ്ത ഡാറ്റാ തരങ്ങളായിരിക്കും. ലഭിച്ച ഫലത്തിന്റെ ഡാറ്റ തരമാണ് രണ്ടാമത്തെ ഘടകം. എക്‌സിക്യൂഷനുശേഷം, ഫംഗ്‌ഷൻ മുഖേന മുൻകൂട്ടി നിശ്ചയിച്ച ഡാറ്റാ തരത്തിന്റെ ഒരു മൂല്യം മാത്രമേ നൽകൂ. മൂന്നാമത്തെ ഘടകം എക്സിക്യൂട്ട് ചെയ്യുന്ന ഫംഗ്ഷന്റെ പ്രോസസ്സിംഗ് വിശദാംശങ്ങൾ ഉൾക്കൊള്ളുന്നു, കൂടാതെ ഇൻപുട്ട് പാരാമീറ്ററുകളിൽ പ്രവർത്തിക്കുന്ന പ്രോഗ്രാം കോഡ് അടങ്ങിയിരിക്കുന്നു, കണക്കുകൂട്ടലുകൾ നടത്തുന്നു, ഒരു മൂല്യം നൽകുന്നു.

ഇൻപുട്ട് എടുക്കുകയും എന്തെങ്കിലും ചെയ്യുകയും ഫലം നൽകുകയും ചെയ്യുന്ന ഒരു ബ്ലാക്ക് ബോക്‌സ് എന്നാണ് ഫംഗ്‌ഷനെ പലപ്പോഴും വിവരിക്കുന്നത്. ഫംഗ്‌ഷനുകളുടെ നിർവ്വഹണ വിശദാംശങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിനുപകരം, ബിൽറ്റ്-ഇൻ ഫംഗ്‌ഷനുകൾ എന്ത് പ്രവർത്തനക്ഷമതയാണ് നൽകുന്നത് എന്ന് മനസിലാക്കുന്നത് കൂടുതൽ ഉപയോഗപ്രദമാണ്.

ഫംഗ്‌ഷൻ കോളുകൾ നെസ്റ്റഡ് ചെയ്യാം, ഉദാഹരണത്തിന് F1(x, y, F2(a, b), z), ഇവിടെ ഫംഗ്‌ഷൻ F2 രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകൾ എടുക്കുകയും നാല് പരാമീറ്ററുകളിൽ മൂന്നാമത്തേത് F1 ഫംഗ്‌ഷനിലേക്ക് തിരികെ നൽകുകയും ചെയ്യുന്നു. ഫംഗ്‌ഷനുകൾക്ക് ഏത് തരത്തിലുള്ള ഡാറ്റയിലും പ്രവർത്തിക്കാൻ കഴിയും: ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്നത് പ്രതീകം, സംഖ്യകൾ, തീയതി ഡാറ്റ എന്നിവയാണ്. ഈ ഫംഗ്‌ഷൻ പരാമീറ്ററുകൾ നിരകളോ എക്‌സ്‌പ്രഷനുകളോ ആകാം.

ഉദാഹരണമായി, ഒരു വ്യക്തിയുടെ പ്രായം കണക്കാക്കുന്ന ഒരു ഫംഗ്ഷൻ പരിഗണിക്കുക. AGE ഫംഗ്‌ഷന് ജന്മദിനം എന്ന ഒരു പാരാമീറ്റർ മാത്രമേ എടുക്കൂ. AGE ഫംഗ്‌ഷൻ നൽകുന്ന ഫലം വ്യക്തിയുടെ പ്രായത്തെ പ്രതിനിധീകരിക്കുന്ന ഒരു സംഖ്യയാണ്. ബ്ലാക്ക് ബോക്‌സ് കണക്കുകൂട്ടലിൽ നിലവിലെ തീയതിയും ജന്മദിനവും തമ്മിലുള്ള വർഷങ്ങളുടെ വ്യത്യാസം ഇൻപുട്ട് പാരാമീറ്ററായി ലഭിക്കുന്നത് ഉൾപ്പെടുന്നു.

പ്രവർത്തനങ്ങളുടെ തരങ്ങൾ

ഫംഗ്ഷനുകളെ വിശാലമായി രണ്ട് വിഭാഗങ്ങളായി തിരിക്കാം: ഒരു സ്ട്രിംഗ് പ്രോസസ്സ് ചെയ്യുന്നവ (സ്ട്രിംഗ് ഫംഗ്ഷനുകൾ), ഒരു കൂട്ടം സ്ട്രിംഗുകൾ പ്രോസസ്സ് ചെയ്യുന്നവ (ഗ്രൂപ്പിംഗ് ഫംഗ്ഷനുകൾ). വിവിധ ഫംഗ്‌ഷനുകൾ ഉപയോഗിക്കുന്ന സന്ദർഭം മനസ്സിലാക്കുന്നതിന് ഈ ഹൈലൈറ്റിംഗ് വളരെ പ്രധാനമാണ്.

സ്ട്രിംഗ് പ്രവർത്തനങ്ങൾ

സ്ട്രിംഗ് ഫംഗ്‌ഷനുകൾ, നമ്പർ ഫംഗ്‌ഷനുകൾ, തീയതി ഫംഗ്‌ഷനുകൾ, തരം കൺവേർഷൻ ഫംഗ്‌ഷനുകൾ, പൊതുവായ ഫംഗ്‌ഷനുകൾ എന്നിവ ഉൾപ്പെടെ നിരവധി തരം സ്‌ട്രിംഗ് ഫംഗ്‌ഷനുകൾ ലഭ്യമാണ്. ഈ ഫംഗ്‌ഷനുകൾ ഒരു സമയം ഒരു സെറ്റിൽ നിന്ന് ഒരു വരി പ്രോസസ്സ് ചെയ്യുന്നു. ഒരു ചോദ്യം പത്ത് വരികൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, ഫംഗ്‌ഷൻ പത്ത് തവണ എക്‌സിക്യൂട്ട് ചെയ്യപ്പെടും, ഓരോ വരിയിലും ഒരിക്കൽ, ഒരുപക്ഷേ വരി കോളം മൂല്യങ്ങൾ ഫംഗ്‌ഷനിലേക്കുള്ള ഇൻപുട്ട് പാരാമീറ്ററുകളായി ഉപയോഗിച്ചേക്കാം.

ഇനിപ്പറയുന്ന ചോദ്യം REGIONS പട്ടികയിൽ നിന്ന് രണ്ട് നിരകളും LENGTH ഫംഗ്‌ഷനും REGION_NAME കോളവും ഉപയോഗിച്ച് ഒരു എക്‌സ്‌പ്രഷനും തിരഞ്ഞെടുക്കുന്നു

മേഖലകളിൽ നിന്ന് റീജിയൻ_ഐഡി, റീജിയൻ_നെയിം, ദൈർഘ്യം (മേഖല_നാമം) തിരഞ്ഞെടുക്കുക;

REGION_NAME നിരയുടെ ദൈർഘ്യം REGIONS പട്ടികയിലെ ഓരോ നാല് വരികൾക്കും വേണ്ടി കണക്കാക്കുന്നു; ഫംഗ്ഷൻ നാല് തവണ എക്സിക്യൂട്ട് ചെയ്യുന്നു, ഓരോ തവണയും ഒരു അക്ഷര മൂല്യം നൽകുന്നു.

ഡിസ്‌പ്ലേയ്‌ക്ക് മുമ്പായി അവ വീണ്ടെടുക്കുന്നതിനും ഫോർമാറ്റ് ചെയ്യുന്നതിനുമായി നൽകിയിരിക്കുന്ന സ്ട്രിംഗ് ഘടകങ്ങളിൽ സ്ട്രിംഗ് ഫംഗ്‌ഷനുകൾ പ്രവർത്തിക്കുന്നു. ഒരു സ്ട്രിംഗ് ഫംഗ്‌ഷന്റെ ഇൻപുട്ട് മൂല്യങ്ങൾ ഉപയോക്തൃ-നിർവചിച്ച കോൺസ്റ്റന്റ് അല്ലെങ്കിൽ ലിറ്ററൽ, കോളം ഡാറ്റ, വേരിയബിളുകൾ അല്ലെങ്കിൽ എക്സ്പ്രഷനുകൾ, ഒരുപക്ഷേ മറ്റ് നെസ്റ്റഡ് സ്ട്രിംഗ് ഫംഗ്ഷനുകൾ മുതലായവ ഉപയോഗിച്ച് ആകാം. നെസ്റ്റഡ് കോളുകൾ പതിവായി ഉപയോഗിക്കുന്ന ഒരു സാങ്കേതികതയാണ്. ഫംഗ്‌ഷനുകൾക്ക് ഇൻപുട്ട് പാരാമീറ്ററുകളുടെ ഡാറ്റ തരത്തിൽ നിന്ന് വ്യത്യസ്തമായ ഒരു ഡാറ്റാ തരത്തിന്റെ മൂല്യം നൽകാനാകും. LENGTH ഫംഗ്‌ഷൻ ഒരു സ്‌ട്രിംഗ് ഇൻപുട്ടായി എടുത്ത് ഒരു നമ്പർ എങ്ങനെ നൽകുന്നു എന്ന് മുമ്പത്തെ ചോദ്യം കാണിക്കുന്നു.

SELECT ക്ലോസിൽ ഫംഗ്‌ഷനുകൾ ഉപയോഗിക്കുന്നതിനു പുറമേ, WHERE, ഓർഡർ പ്രകാരം ക്ലോസുകളിൽ സ്ട്രിംഗ് ഫംഗ്‌ഷനുകൾ ഉപയോഗിക്കാം.

ഒരു ഡാറ്റാ സെറ്റിനൊപ്പം പ്രവർത്തിക്കുന്ന ഫംഗ്‌ഷനുകൾ

പേര് സൂചിപ്പിക്കുന്നത് പോലെ, ഈ ഫംഗ്ഷനുകൾ ഒന്നിലധികം സ്ട്രിംഗുകളിൽ പ്രവർത്തിക്കുന്നു. മൾട്ടിറോ ഫംഗ്‌ഷന്റെ ഒരു സാധാരണ ഉപയോഗം ചില സംഖ്യാ നിരകളുടെ ആകെത്തുകയോ ശരാശരിയോ കണക്കാക്കുകയോ ഫലത്തിലെ വരികളുടെ എണ്ണം കണക്കാക്കുകയോ ചെയ്യുക എന്നതാണ്. ഈ ഫംഗ്‌ഷനുകളെ ചിലപ്പോൾ ഗ്രൂപ്പിംഗ് ഫംഗ്‌ഷനുകൾ എന്ന് വിളിക്കുന്നു, ഞങ്ങൾ അവ അടുത്ത അധ്യായത്തിൽ നോക്കും.

കേസ്-പരിഷ്ക്കരിക്കുന്ന ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു

പട്ടികകളിലെ ഡാറ്റ വിവിധ ഉറവിടങ്ങളിൽ നിന്ന് പൂരിപ്പിക്കാൻ കഴിയും: പ്രോഗ്രാമുകൾ, ക്രിപ്റ്റോകറൻസികൾ മുതലായവ. ഒരു മുൻനിശ്ചയിച്ച കേസിൽ നൽകിയിരിക്കുന്ന പ്രതീക ഡാറ്റയെ നിങ്ങൾ ആശ്രയിക്കരുത്. കേസ്-ഷിഫ്റ്റിംഗ് സ്ട്രിംഗ് ഫംഗ്‌ഷനുകൾ രണ്ട് പ്രധാന ഉദ്ദേശ്യങ്ങൾ നിറവേറ്റുന്നു. ഒന്നാമതായി, വിവരങ്ങൾ സംരക്ഷിക്കുമ്പോഴോ പ്രദർശിപ്പിക്കുമ്പോഴോ ഡാറ്റാ രജിസ്റ്ററിൽ മാറ്റം വരുത്തുന്നതിനോ അല്ലെങ്കിൽ കൂടുതൽ ഫ്ലെക്സിബിൾ തിരയലിനായി എവിടെയുള്ള സാഹചര്യങ്ങളിലോ അവ ഉപയോഗിക്കാം. അപ്പർ, ലോവർ കേസിന്റെ എല്ലാ കോമ്പിനേഷനുകളും പരിശോധിക്കുന്നതിനുപകരം ഫിക്സഡ് കേസ് ഉപയോഗിച്ച് ഒരു സ്ട്രിംഗ് തിരയുന്നത് വളരെ എളുപ്പമാണ്. കോളിംഗ് ഫംഗ്‌ഷനുകൾ പട്ടികയിൽ സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയെ മാറ്റില്ലെന്ന് ഓർമ്മിക്കുക. അവ അന്വേഷണ ഫല ഡാറ്റയെ പരിവർത്തനം ചെയ്യുന്നു.

ഇൻപുട്ട് പാരാമീറ്ററുകൾ പ്രതീക അക്ഷരങ്ങൾ, ഒരു പ്രതീക ഡാറ്റ തരത്തിന്റെ നിരകൾ, പ്രതീക എക്സ്പ്രഷനുകൾ അല്ലെങ്കിൽ അക്കങ്ങളും തീയതികളും (അത് പരോക്ഷമായി സ്ട്രിംഗുകളായി പരിവർത്തനം ചെയ്യപ്പെടും) ആകാം.

ലോവർ ഫംഗ്‌ഷൻ

ലോവർ ഫംഗ്‌ഷൻ എല്ലാ വലിയക്ഷരങ്ങളും തത്തുല്യമായ ചെറിയ അക്ഷരങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. LOWER(സ്ട്രിംഗ്) ഫംഗ്‌ഷന്റെ വാക്യഘടന. ഈ ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്ന ഒരു അഭ്യർത്ഥനയുടെ ഉദാഹരണം നോക്കാം

ഡ്യുവലിൽ നിന്ന് ലോവർ(100+100), ലോവർ('എസ്‌ക്യുഎൽ'), ലോവർ(സിസ്‌ഡേറ്റ്) തിരഞ്ഞെടുക്കുക

ഇപ്പോഴത്തെ തീയതി 2015 ഡിസംബർ 17 ആണെന്ന് കരുതുക. അന്വേഷണത്തിന്റെ ഫലം '200', 'sql', '17-dec-2015' എന്നീ സ്ട്രിംഗുകളായിരിക്കും. ലോവർ ഫംഗ്‌ഷനിലേക്ക് വിളിക്കുന്നതിന് മുമ്പ് സംഖ്യാ പദപ്രയോഗവും തീയതിയും പരോക്ഷമായി ഒരു സ്‌ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു.

ഏത് സാഹചര്യത്തിലും 'U', 'R' എന്നീ അക്ഷരങ്ങൾ തുടർച്ചയായി വരുന്ന സ്ട്രിംഗുകൾ കണ്ടെത്താൻ ഇനിപ്പറയുന്ന ഉദാഹരണം ലോവർ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു

ജീവനക്കാരിൽ നിന്ന് ഫസ്റ്റ്_നെയിം, ലാസ്റ്റ്_നെയിം, ലോവർ(ലാസ്റ്റ്_നെയിം) എന്നിവ തിരഞ്ഞെടുക്കുക

'%ur%' പോലെ താഴെ (ലാസ്റ്റ്_നെയിം);

ലോവർ ഫംഗ്‌ഷൻ ഉപയോഗിക്കാതെ നിങ്ങൾക്ക് സമാനമായ ഒരു ചോദ്യം എഴുതാം. ഉദാഹരണത്തിന് ഇതുപോലെ

ജീവനക്കാരിൽ നിന്ന് ആദ്യ_നാമം, അവസാന_നാമം തിരഞ്ഞെടുക്കുക

എവിടെയാണ് അവസാന_പേര് '%ur%' അല്ലെങ്കിൽ അവസാന_പേര് '%UR%'

അല്ലെങ്കിൽ '%uR%' പോലെയുള്ള അവസാന_പേര് അല്ലെങ്കിൽ '%UR%' പോലെയുള്ള അവസാന_പേര്

ഈ ചോദ്യം പ്രവർത്തിക്കുന്നു, പക്ഷേ ഇത് വളരെ ബുദ്ധിമുട്ടുള്ളതാണ്, കൂടാതെ വരി വലുതാകുമ്പോൾ OR ഓപ്പറേറ്റർമാരുടെ എണ്ണം ക്രമാതീതമായി വർദ്ധിക്കുന്നു.

മുകളിലെ പ്രവർത്തനം

UPPER ഫംഗ്‌ഷൻ ലോവർ ഫംഗ്‌ഷന്റെ ലോജിക്കൽ വിപരീതമാണ്, കൂടാതെ എല്ലാ ചെറിയക്ഷരങ്ങളും അവയുടെ വലിയക്ഷര തുല്യതകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. ഫംഗ്ഷൻ വാക്യഘടന UPPER (സ്ട്രിംഗ്) ആണ്. ഒരു ഉദാഹരണം നോക്കാം

'%U%S%A%' പോലെ മുകളിലുള്ള (രാജ്യ_നാമം) രാജ്യങ്ങളിൽ നിന്ന് * തിരഞ്ഞെടുക്കുക;

ഈ ചോദ്യം COUNTRIES പട്ടികയിൽ നിന്ന് വരികൾ തിരഞ്ഞെടുക്കുന്നു, അവിടെ COUNTRY_NAME എന്നതിൽ 'U', 'S', 'A' അക്ഷരങ്ങൾ ഏത് ക്രമത്തിലും അടങ്ങിയിരിക്കുന്നു.

INITCAP ഫംഗ്‌ഷൻ

ഡാറ്റ പ്രദർശിപ്പിക്കുന്നതിന് INITCAP ഫംഗ്ഷൻ പലപ്പോഴും ഉപയോഗിക്കുന്നു. ഒരു വരിയിലെ ഓരോ വാക്കിന്റെയും ആദ്യ പ്രതീകങ്ങൾ വലിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു, മറ്റെല്ലാ പ്രതീകങ്ങളും ചെറിയക്ഷരത്തിന് തുല്യമായി പരിവർത്തനം ചെയ്യുന്നു. സ്‌പെയ്‌സുകളോ പ്രത്യേക പ്രതീകങ്ങളോ അടങ്ങാത്ത പ്രതീകങ്ങളുടെ കൂട്ടമാണ് വാക്ക്. സ്പേസ്, അണ്ടർസ്കോർ, പ്രത്യേക പ്രതീകങ്ങളായ ശതമാനം ചിഹ്നങ്ങൾ, ആശ്ചര്യചിഹ്നങ്ങൾ, ഡോളർ ചിഹ്നങ്ങൾ എന്നിവ സെപ്പറേറ്ററായി കണക്കാക്കപ്പെടുന്നു. INITCAP ഫംഗ്‌ഷൻ ഒരു പരാമീറ്ററും സിന്റാക്സും INITCAP(സ്ട്രിംഗ്) എടുക്കുന്നു. ഇനിപ്പറയുന്ന ഉദാഹരണം INITCAP ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നതിനുള്ള ഒരു ഉദാഹരണം കാണിക്കുന്നു

ഡ്യുവലിൽ നിന്ന് initcap ('init cap അല്ലെങ്കിൽ init_cap അല്ലെങ്കിൽ init%cap') തിരഞ്ഞെടുക്കുക

ഈ അന്വേഷണത്തിന്റെ ഫലം Init Cap അല്ലെങ്കിൽ Init_Cap അല്ലെങ്കിൽ Init%Cap എന്ന സ്ട്രിംഗ് ആയിരിക്കും

സ്ട്രിംഗ് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുന്നു

ഒറാക്കിൾ നൽകുന്ന ഏറ്റവും ശക്തമായ ഫീച്ചറുകളിൽ ഒന്നാണ് സ്ട്രിംഗ് ഫംഗ്‌ഷനുകൾ. വിശദമായ വിശദീകരണങ്ങളില്ലാതെ അവ വളരെ ഉപയോഗപ്രദവും മനസ്സിലാക്കാവുന്നതുമാണ്, മാത്രമല്ല ഡാറ്റ പ്രോസസ്സ് ചെയ്യുമ്പോൾ വ്യത്യസ്ത പ്രോഗ്രാമർമാർ പലപ്പോഴും ഉപയോഗിക്കുന്നു. ഈ ഫംഗ്‌ഷനുകളിലേക്കുള്ള നെസ്റ്റഡ് കോളുകൾ പലപ്പോഴും ഉപയോഗിക്കാറുണ്ട്. CONCAT ഫംഗ്‌ഷനുപകരം കോൺകാറ്റനേഷൻ ഓപ്പറേറ്റർ ഉപയോഗിക്കാം. RPAD, LPAD, TRIM എന്നിവ പോലെ LENGTH, INSTR, SUBSTR, REPLACE ഫംഗ്‌ഷനുകൾ എന്നിവ പരസ്പരം പൂരകമാക്കാം.

CONCAT ഫംഗ്‌ഷൻ

CONCAT ഫംഗ്‌ഷൻ രണ്ട് ലിറ്ററലുകൾ, കോളങ്ങൾ അല്ലെങ്കിൽ എക്‌സ്‌പ്രഷനുകൾ സംയോജിപ്പിച്ച് ഒരു വലിയ പദപ്രയോഗം ഉണ്ടാക്കുന്നു. CONCAT ഫംഗ്‌ഷന് രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകളുണ്ട്. ഫംഗ്‌ഷൻ വാക്യഘടന CONCAT(string1, string2) ആണ്, ഇവിടെ string1 ഉം string2 ഉം ഒരു അക്ഷരമോ നിരയോ അല്ലെങ്കിൽ ഒരു പദപ്രയോഗമോ ആകാം, അതിന്റെ ഫലം ഒരു പ്രതീകം അക്ഷരീയമാണ്. ഇനിപ്പറയുന്ന ഉദാഹരണം CONCAT ഫംഗ്‌ഷന്റെ ഉപയോഗം കാണിക്കുന്നു

ഡ്യുവലിൽ നിന്ന് concat ('ഇന്ന്:',SYSDATE) തിരഞ്ഞെടുക്കുക

ഫംഗ്‌ഷന്റെ രണ്ടാമത്തെ പാരാമീറ്റർ SYSDATE ഫംഗ്‌ഷനാണ്, അത് നിലവിലെ സിസ്റ്റം സമയം നൽകുന്നു. മൂല്യം ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുകയും ആദ്യത്തെ പാരാമീറ്റർ അതിൽ കൂട്ടിച്ചേർക്കുകയും ചെയ്യുന്നു. നിലവിലെ സിസ്റ്റം തീയതി ഡിസംബർ 17, 2015 ആണെങ്കിൽ, ചോദ്യം 'ഇന്ന്:17-DEC-2015' എന്ന സ്ട്രിംഗ് നൽകും.

മൂന്ന് ഘടകങ്ങൾ സംയോജിപ്പിക്കാൻ ഒരു ഫംഗ്ഷൻ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നോക്കാം. CONCAT ഫംഗ്‌ഷന് രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകൾ മാത്രമേ സ്വീകരിക്കാൻ കഴിയൂ എന്നതിനാൽ, രണ്ട് ഘടകങ്ങൾ മാത്രമേ സംയോജിപ്പിക്കാൻ കഴിയൂ. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾക്ക് മറ്റൊരു ഫംഗ്ഷൻ കോളിലേക്ക് ഒരു ഫംഗ്ഷൻ കോൾ ഒരു പാരാമീറ്ററായി ഉപയോഗിക്കാം. അപ്പോൾ അഭ്യർത്ഥന ഇതുപോലെ കാണപ്പെടും

ഡ്യുവലിൽ നിന്ന് കോൺകാറ്റ് (‘ഔട്ടർ1’, കോൺകാറ്റ് (‘ഇന്നർ1′,’ ഇന്നർ2′)) തിരഞ്ഞെടുക്കുക;

ആദ്യ ഫംഗ്‌ഷന് രണ്ട് പാരാമീറ്ററുകളുണ്ട്: ആദ്യ പാരാമീറ്റർ അക്ഷരാർത്ഥത്തിലുള്ള 'ഔട്ടർ1' ആണ്, രണ്ടാമത്തെ പാരാമീറ്റർ നെസ്റ്റഡ് കോൺ‌കാറ്റ് ഫംഗ്‌ഷനാണ്. രണ്ടാമത്തെ ഫംഗ്‌ഷൻ രണ്ട് പാരാമീറ്ററുകൾ എടുക്കുന്നു: അക്ഷരീയമായ 'Inner1', അക്ഷരാർത്ഥത്തിൽ 'Inner2'. ഈ അന്വേഷണത്തിന്റെ ഫലം 'Outer1 Inner1 Inner 2' എന്ന സ്ട്രിംഗ് ആയിരിക്കും. ഞങ്ങൾ നെസ്റ്റഡ് ഫംഗ്‌ഷനുകൾ കുറച്ച് കഴിഞ്ഞ് നോക്കാം.

LENGTH ഫംഗ്‌ഷൻ

LENGTH ഫംഗ്‌ഷൻ ഒരു സ്‌ട്രിംഗ് സൃഷ്‌ടിക്കുന്ന പ്രതീകങ്ങളുടെ എണ്ണം നൽകുന്നു. സ്‌പെയ്‌സുകളും ടാബുകളും പ്രത്യേക പ്രതീകങ്ങളും LENGTH ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് കണക്കാക്കുന്നു. ഫംഗ്‌ഷന് ഒരു പാരാമീറ്റർ ഉണ്ട്, വാക്യഘടന LENGTH (സ്ട്രിംഗ്) ആണ്. അപേക്ഷ പരിഗണിക്കാം

നീളം(രാജ്യ_നാമം) > 10 രാജ്യങ്ങളിൽ നിന്ന് * തിരഞ്ഞെടുക്കുക;

പത്ത് പ്രതീകങ്ങളിൽ കൂടുതൽ പേരുള്ള രാജ്യങ്ങളെ തിരഞ്ഞെടുക്കാൻ LENGTH ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു.

RPAD പ്രവർത്തനങ്ങൾകൂടാതെ എൽപിഎഡി

RPAD, LPAD ഫംഗ്‌ഷനുകൾ ഒരു നിശ്ചിത ദൈർഘ്യമുള്ള സ്‌ട്രിംഗ് നൽകുകയും ഓപ്‌ഷണലായി യഥാർത്ഥ മൂല്യം ഇടത്തോട്ടോ വലത്തോട്ടോ ഒരു നിർദ്ദിഷ്ട പ്രതീകങ്ങൾ ഉപയോഗിച്ച് പാഡ് ചെയ്യുകയും ചെയ്യുന്നു. കൂട്ടിച്ചേർക്കലിനായി ഉപയോഗിക്കുന്ന പ്രതീകങ്ങൾ ലിറ്ററൽ, കോളം മൂല്യം, എക്സ്പ്രഷൻ, സ്പേസ് (ഡിഫോൾട്ട്), ടാബ്, പ്രത്യേക പ്രതീകങ്ങൾ എന്നിവ ആകാം. LPAD, RPAD ഫംഗ്ഷനുകൾ മൂന്ന് ഇൻപുട്ട് പാരാമീറ്ററുകളും വാക്യഘടന LPAD( എസ്, എൻ, പി) കൂടാതെ RPAD( എസ്, എൻ, പി) എവിടെ എസ്- പ്രോസസ്സ് ചെയ്യേണ്ട സ്ട്രിംഗിന്റെ മൂല്യം, എൻ- ഫല പ്രതീകങ്ങളുടെ എണ്ണം കൂടാതെ പി- ചേർക്കാനുള്ള ചിഹ്നങ്ങൾ. LPAD ആണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ചിഹ്നങ്ങൾ പിനീളം n എത്തുന്നതുവരെ ഇടതുവശത്ത് നിന്ന് ചേർക്കുന്നു. RPAD ആണെങ്കിൽ - വലതുവശത്ത്. നീളമാണെങ്കിൽ ദയവായി ശ്രദ്ധിക്കുക എസ്നീളത്തേക്കാൾ കൂടുതൽ എൻ- അപ്പോൾ ഫലം ആദ്യമായിരിക്കും എൻപ്രതീകങ്ങളുടെ അർത്ഥം എസ്. ചിത്രം 10-1 ലെ ചോദ്യങ്ങൾ പരിഗണിക്കുക

ചിത്രം 10-1 - RPAD, LPAD ഫംഗ്‌ഷനുകൾ ഉപയോഗിക്കുന്നു

ആദ്യ ചോദ്യം ഡാറ്റയെ മാറ്റില്ല, രണ്ടാമത്തെ ചോദ്യത്തിന്റെ ഫലവുമായി താരതമ്യം ചെയ്യുമ്പോൾ ഫലം വളരെ വായിക്കാൻ കഴിയില്ല. ഫസ്റ്റ്_നെയിമിനും ലാസ്റ്റ്_നെയിമിനും ആവശ്യമുള്ളിടത്ത് സ്‌പെയ്‌സുകൾ ചേർക്കാൻ RPAD ഉപയോഗിക്കുന്നു, അതിലൂടെ എല്ലാ മൂല്യങ്ങളും 18 പ്രതീകങ്ങളുടെ നിശ്ചിത ദൈർഘ്യമുള്ളതാണ്, കൂടാതെ 6 പ്രതീകങ്ങളുടെ ദൈർഘ്യത്തിൽ എത്തുന്നതുവരെ ശമ്പള മൂല്യത്തിന്റെ തുടക്കത്തിൽ സ്‌പെയ്‌സുകൾ ചേർക്കാൻ LPAD ഉപയോഗിക്കുന്നു.

TRIM ഫംഗ്ഷൻ

TRIM ഫംഗ്‌ഷൻ പ്രതീകങ്ങളും ഒരു സ്‌ട്രിംഗിന്റെ തുടക്കമോ അവസാനമോ നീക്കം ചെയ്‌ത് അതിനെ ചെറുതാക്കുന്നു. ഫംഗ്‌ഷൻ ആവശ്യമായ പാരാമീറ്ററും ഓപ്‌ഷണലും എടുക്കുന്നു. ഫംഗ്ഷൻ വാക്യഘടന TRIM([ പിന്നിലായി|മുന്നേറ്റം|രണ്ടും] ട്രിംസ്ട്രിംഗ്നിന്ന് സ്ട്രിംഗ്). ഇൻപുട്ട് സ്ട്രിംഗ് (കൾ) പാരാമീറ്റർ ആവശ്യമാണ്. ഇനിപ്പറയുന്ന ഇനങ്ങൾ ഓപ്ഷനുകൾ പട്ടികപ്പെടുത്തുന്നു

  • TRIM(കൾ) വരിയുടെ തുടക്കം മുതൽ അവസാനം വരെയുള്ള ഇടങ്ങൾ നീക്കം ചെയ്യുന്നു
  • TRIM(s-ൽ നിന്നുള്ള ട്രിംസ്ട്രിംഗ്) സ്ട്രിംഗിന്റെ അവസാനത്തിൽ നിന്ന് ട്രിംസ്‌ട്രിംഗ് പ്രതീകങ്ങൾ നീക്കംചെയ്യുന്നു
  • TRIM(s-ൽ നിന്നുള്ള മുൻനിര ട്രിംസ്ട്രിംഗ്) സ്ട്രിംഗിന്റെ തുടക്കത്തിൽ നിന്ന് ട്രിംസ്‌ട്രിംഗ് പ്രതീകങ്ങൾ നീക്കംചെയ്യുന്നു
  • TRIM(രണ്ടും ട്രിംസ്‌ട്രിംഗ്) അല്ലെങ്കിൽ TRIM(s-ൽ നിന്നുള്ള ട്രിംസ്ട്രിംഗ്) സ്‌ട്രിംഗിന്റെ തുടക്കത്തിലും അവസാനത്തിലും ഉള്ള എല്ലാ ട്രിംസ്ട്രിംഗ് പ്രതീകങ്ങളും നീക്കം ചെയ്യുന്നു

ട്രിം തിരഞ്ഞെടുക്കുക (രണ്ടും '**** മറഞ്ഞിരിക്കുന്ന ****' എന്നതിൽ നിന്ന്),

ട്രിം (‘****ഹിഡൻ****’ എന്നതിൽ നിന്ന് മുൻനിരയിലുള്ള ‘*’),

ഡ്യുവലിൽ നിന്ന് ട്രിം (‘****ഹിഡൻ****’ എന്നതിൽ നിന്ന് ‘*’ പിന്നിലുണ്ട്;

“മറഞ്ഞിരിക്കുന്നു”, “മറഞ്ഞിരിക്കുന്നു ****”, “****മറഞ്ഞിരിക്കുന്നു” എന്നിവ നൽകുന്നു. ഒരു പ്രതീകം മാത്രം വ്യക്തമാക്കുന്നതിലൂടെ, എല്ലാ പ്രതീകങ്ങളും തുടർച്ചയായി ആവർത്തിക്കുകയാണെങ്കിൽ അവ നീക്കം ചെയ്യപ്പെടും.

INSTR പ്രവർത്തനം

INSTR ഫംഗ്‌ഷൻ ഒരു സ്‌ട്രിംഗിൽ ഒരു സബ്‌സ്‌ട്രിംഗിനായി തിരയുന്നു. സ്ട്രിംഗിന്റെ തുടക്കവുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, തിരയൽ സ്ഥാനത്ത് നിന്ന് ആരംഭിക്കുന്ന, n-ആം സംഭവം ആരംഭിക്കുന്ന സ്ഥാനത്തെ സൂചിപ്പിക്കുന്ന ഒരു നമ്പർ നൽകുന്നു. സ്ട്രിംഗിൽ സബ്‌സ്ട്രിംഗ് കണ്ടെത്തിയില്ലെങ്കിൽ, 0 തിരികെ നൽകും.

INSTR ഫംഗ്‌ഷന് ആവശ്യമായ രണ്ട് പാരാമീറ്ററുകളും രണ്ട് ഓപ്‌ഷണൽ പാരാമീറ്ററുകളും ഉണ്ട്. ഫംഗ്ഷൻ വാക്യഘടന INSTR(ഉറവിട സ്ട്രിംഗ്, തിരയൽ സ്ട്രിംഗ്, , ). തിരയൽ ആരംഭ സ്ഥാനം=1 എന്നതിനായുള്ള സ്ഥിര മൂല്യം അല്ലെങ്കിൽ മറ്റൊരു രീതിയിൽ പറഞ്ഞാൽ ഉറവിട സ്‌ട്രിംഗിന്റെ ആരംഭം. n സംഭവം=1 അല്ലെങ്കിൽ ആദ്യ ആവർത്തനത്തിനുള്ള ഡിഫോൾട്ട് മൂല്യം. ഏതാനും ഉദാഹരണങ്ങൾ നോക്കാം

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് instr ('1#3#5#7#9#', '#') തിരഞ്ഞെടുക്കുക;

ചോദ്യം 2: ഡ്യുവലിൽ നിന്ന് instr (‘1#3#5#7#9#’, ‘#’ ,5) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 3: ഡ്യുവലിൽ നിന്ന് instr ('1#3#5#7#9#', '#', 3, 4) തിരഞ്ഞെടുക്കുക;

ആദ്യത്തെ ചോദ്യം സ്‌ട്രിംഗിലെ ഹാഷ് ടാഗിന്റെ ആദ്യ സംഭവത്തിനായി തിരയുകയും മൂല്യം 2 നൽകുകയും ചെയ്യുന്നു. രണ്ടാമത്തെ ചോദ്യം അഞ്ചാമത്തെ പ്രതീകത്തിൽ നിന്ന് ആരംഭിക്കുന്ന സ്‌ട്രിംഗിലെ ഹാഷ് ടാഗിനായി തിരയുകയും ആറാമത്തെ പ്രതീകത്തിൽ നിന്ന് ആദ്യ സംഭവം കണ്ടെത്തുകയും ചെയ്യുന്നു. മൂന്നാമത്തെ ചോദ്യം മൂന്നാമത്തെ പ്രതീകത്തിൽ നിന്ന് ആരംഭിക്കുന്ന ഹാഷ് ടാഗിന്റെ നാലാമത്തെ സംഭവത്തിനായി തിരയുകയും അത് 10-ാം സ്ഥാനത്ത് കണ്ടെത്തുകയും ചെയ്യുന്നു.

SUBSTR പ്രവർത്തനം

SUBSTR ഫംഗ്‌ഷൻ ഒരു നിശ്ചിത സ്ഥാനത്ത് ആരംഭിക്കുന്ന ഒരു സോഴ്‌സ് സ്‌ട്രിംഗിൽ നിന്ന് ഒരു നിശ്ചിത ദൈർഘ്യമുള്ള ഒരു സബ്‌സ്‌ട്രിംഗ് നൽകുന്നു. ആരംഭ സ്ഥാനം യഥാർത്ഥ സ്‌ട്രിംഗിന്റെ ദൈർഘ്യത്തേക്കാൾ കൂടുതലാണെങ്കിൽ, NULL തിരികെ നൽകും. ഒരു നിശ്ചിത സ്ഥാനത്ത് നിന്ന് ആരംഭിക്കുന്ന ആവശ്യമായ ദൈർഘ്യത്തിന്റെ മൂല്യം ലഭിക്കുന്നതിന് ഉറവിട സ്‌ട്രിംഗിന്റെ ദൈർഘ്യം പര്യാപ്തമല്ലെങ്കിൽ, സ്‌ട്രിംഗിന്റെ ഉറവിട പ്രതീകം മുതൽ വരിയുടെ അവസാനം വരെയുള്ള ഭാഗം തിരികെ നൽകും.

SUBSTR ഫംഗ്‌ഷന് മൂന്ന് പാരാമീറ്ററുകളുണ്ട്, ആദ്യത്തെ രണ്ടെണ്ണം ആവശ്യമാണ്, വാക്യഘടന SUBSTR (ഉറവിട സ്ട്രിംഗ്, ആരംഭ സ്ഥാനം, ) ആണ്. എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യാനുള്ള പ്രതീകങ്ങളുടെ ഡിഫോൾട്ട് മൂല്യം = ഉറവിട സ്‌ട്രിംഗിന്റെ നീളവും ആരംഭ സ്ഥാനവും തമ്മിലുള്ള വ്യത്യാസം. ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ പരിഗണിക്കുക

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് substr (‘1#3#5#7#9#’, 5) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 2: ഡ്യുവലിൽ നിന്ന് substr (‘1#3#5#7#9#’, 5, 3) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 3: ഡ്യുവലിൽ നിന്ന് substr (‘1#3#5#7#9#’, -3, 2) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 1, സ്ഥാനത്ത് 5-ൽ ആരംഭിക്കുന്ന ഒരു സബ്‌സ്‌ട്രിംഗ് നൽകുന്നു. മൂന്നാമത്തെ പാരാമീറ്റർ വ്യക്തമാക്കിയിട്ടില്ലാത്തതിനാൽ, പ്രതീകങ്ങളുടെ എണ്ണം യഥാർത്ഥ സ്‌ട്രിംഗിന്റെ ദൈർഘ്യത്തിന് തുല്യമാണ്, ആരംഭ സ്ഥാനത്ത് നിന്ന് ആറിന് തുല്യമായിരിക്കും. ആദ്യ ചോദ്യം '5#7#9#' എന്ന ഉപസ്‌ട്രിംഗ് തിരികെ നൽകും. ചോദ്യം രണ്ട് അഞ്ചാമത്തെ പ്രതീകത്തിൽ നിന്ന് ആരംഭിക്കുന്ന മൂന്ന് പ്രതീകങ്ങൾ നൽകുന്നു, ഫല സ്ട്രിംഗ് '5#7' ആണ്. ചോദ്യം മൂന്ന് മൈനസ് മൂന്ന് സ്ഥാനത്താണ് ആരംഭിക്കുന്നത്. ഒരു നെഗറ്റീവ് സ്റ്റാർട്ട് പൊസിഷൻ ഒറാക്കിളിനോട് പറയുന്നു, സ്റ്റാർട്ട് പൊസിഷൻ സ്ട്രിംഗിന്റെ അറ്റത്ത് നിന്നാണ് കണക്കാക്കുന്നത്. അതിനാൽ ആരംഭ സ്ഥാനം സ്ട്രിംഗ് മൈനസ് ത്രീയുടെ നീളവും 8 ന് തുല്യവുമാണ്. മൂന്നാമത്തെ പാരാമീറ്റർ രണ്ടിന് തുല്യമാണ്, മൂല്യം '#9' തിരികെ നൽകും.

REPLACE ഫംഗ്‌ഷൻ

REPLACE ഫംഗ്‌ഷൻ തിരഞ്ഞ മൂലകത്തിന്റെ എല്ലാ സംഭവങ്ങളെയും മാറ്റി പകരം വയ്ക്കേണ്ട സ്ട്രിംഗിന്റെ മൂല്യം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു. മാറ്റിസ്ഥാപിക്കുന്ന മൂലകത്തിന്റെ നീളം മാറ്റിസ്ഥാപിക്കുന്ന ഘടകത്തിന്റെ നീളത്തിന് തുല്യമല്ലെങ്കിൽ, തത്ഫലമായുണ്ടാകുന്ന സ്ട്രിംഗിന്റെ നീളം യഥാർത്ഥ സ്ട്രിംഗിൽ നിന്ന് വ്യത്യസ്തമായിരിക്കും. തിരഞ്ഞ ഉപസ്‌ട്രിംഗ് കണ്ടെത്തിയില്ലെങ്കിൽ, സ്‌ട്രിംഗ് മാറ്റമില്ലാതെ തിരികെ നൽകും. മൂന്ന് പാരാമീറ്ററുകൾ ലഭ്യമാണ്, ആദ്യത്തെ രണ്ടെണ്ണം ആവശ്യമാണ് കൂടാതെ കോളിംഗ് സിന്റാക്സ് REPLACE (ഉറവിട സ്ട്രിംഗ്, തിരയൽ ഘടകം, ) ആണ്. നിങ്ങൾ മാറ്റിസ്ഥാപിക്കാനുള്ള എലമെന്റ് പാരാമീറ്റർ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, തിരയൽ ഘടകത്തിന്റെ എല്ലാ സംഭവങ്ങളും ഉറവിട സ്‌ട്രിംഗിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഘടകത്തെ മാറ്റിസ്ഥാപിക്കുക എന്നത് ശൂന്യമായ സ്ട്രിംഗിന് തുല്യമാണ്. ഒറിജിനൽ സ്‌ട്രിംഗിലെ എല്ലാ പ്രതീകങ്ങളും ഒരു ശൂന്യമായ ഘടകം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയാണെങ്കിൽ, മൂലകത്തെ മാറ്റി പകരം വയ്ക്കുന്നത് NULL നൽകുന്നു. നമുക്ക് നിരവധി അഭ്യർത്ഥനകൾ പരിഗണിക്കാം

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് മാറ്റിസ്ഥാപിക്കുക (‘1#3#5#7#9#’,'#','->') തിരഞ്ഞെടുക്കുക

ചോദ്യം 2: ഡ്യുവലിൽ നിന്ന് മാറ്റിസ്ഥാപിക്കുക (‘1#3#5#7#9#’,’#’) തിരഞ്ഞെടുക്കുക

ചോദ്യം 3: ഡ്യുവലിൽ നിന്ന് മാറ്റിസ്ഥാപിക്കുക ('#','#') തിരഞ്ഞെടുക്കുക

ആദ്യ ചോദ്യത്തിലെ ഹാഷ് തിരയേണ്ട പ്രതീകത്തെയും ‘->’ മാറ്റിസ്ഥാപിക്കാനുള്ള സ്ട്രിംഗിനെയും സൂചിപ്പിക്കുന്നു. ഹാഷ് സ്‌ട്രിംഗിൽ അഞ്ച് തവണ പ്രത്യക്ഷപ്പെടുകയും അത് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു, അതിന്റെ ഫലമായി അന്തിമ സ്‌ട്രിംഗായ ‘1->3->5->7->9->’. റീപ്ലേസ്‌മെന്റ് സ്‌ട്രിംഗിനെ ചോദ്യം 2 വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ല. സ്ഥിര മൂല്യം ശൂന്യമായ സ്ട്രിംഗ് ആണ്, ഫലം '13579' ആയിരിക്കും. ചോദ്യം നമ്പർ മൂന്ന് NULL തിരികെ നൽകും.

സംഖ്യാ പ്രവർത്തനങ്ങൾ ഉപയോഗിക്കുന്നു

നമ്പറുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ ഒറാക്കിളിന് നിരവധി ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനുകൾ ഉണ്ട്. സംഖ്യാ പ്രവർത്തനങ്ങളും മറ്റുള്ളവയും തമ്മിലുള്ള പ്രധാന വ്യത്യാസം, ഈ ഫംഗ്‌ഷനുകൾ സംഖ്യകളെ മാത്രം പാരാമീറ്ററുകളായി എടുക്കുകയും അക്കങ്ങൾ മാത്രം നൽകുകയും ചെയ്യുന്നു എന്നതാണ്. ത്രികോണമിതി, എക്‌സ്‌പോണൻഷ്യൽ, ലോഗരിഥമിക് എക്‌സ്‌പ്രഷനുകൾ കൂടാതെ മറ്റു പലതിലും പ്രവർത്തിക്കുന്നതിന് ഒറാക്കിൾ സംഖ്യാപരമായ പ്രവർത്തനങ്ങൾ നൽകുന്നു. ഞങ്ങൾ ലളിതമായ സംഖ്യാ സ്ട്രിംഗ് ഫംഗ്ഷനുകളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കും: ROUND, TRUNC, MOD.

ROUND പ്രവർത്തനം

ആവശ്യമായ കൃത്യതയെ ആശ്രയിച്ച് ROUND ഫംഗ്ഷൻ ഒരു സംഖ്യയെ റൗണ്ട് ചെയ്യുന്നു. ആവശ്യമുള്ള അക്കത്തിലെ അവസാന അക്കത്തിന്റെ മൂല്യത്തെ ആശ്രയിച്ച്, തിരികെ നൽകിയ മൂല്യം മുകളിലേക്കോ താഴേക്കോ റൗണ്ട് ചെയ്‌തിരിക്കുന്നു. കൃത്യമായ മൂല്യം n ആണെങ്കിൽ, വൃത്താകൃതിയിലുള്ള അക്കം ദശാംശ ബിന്ദുവിന് ശേഷം n എന്ന സ്ഥാനത്തായിരിക്കും, മൂല്യം സ്ഥാനത്തുള്ള അക്കത്തെ ആശ്രയിച്ചിരിക്കും (n+1). കൃത്യമായ മൂല്യം നെഗറ്റീവ് ആണെങ്കിൽ, ദശാംശ പോയിന്റിന്റെ ഇടതുവശത്തുള്ള n അക്കത്തിന് ശേഷമുള്ള എല്ലാ അക്കങ്ങളും 0 ആയിരിക്കും, കൂടാതെ n ന്റെ മൂല്യം n+1-നെ ആശ്രയിച്ചിരിക്കും. റൗണ്ടിംഗ് ആശ്രയിക്കുന്ന അക്കത്തിന്റെ മൂല്യം 5-നേക്കാൾ വലുതോ തുല്യമോ ആണെങ്കിൽ, റൗണ്ടിംഗ് മുകളിലേക്കും അല്ലെങ്കിൽ താഴേക്കും സംഭവിക്കുന്നു.

ROUND ഫംഗ്‌ഷൻ രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകളും സിന്റാക്‌സ് ROUND (ഉറവിട നമ്പർ, ദശാംശ കൃത്യത) എടുക്കുന്നു. ഉറവിട നമ്പർ ഏത് സംഖ്യയും ആകാം. ഡെസിമൽ പ്രിസിഷൻ പാരാമീറ്റർ ആവശ്യമായ കൃത്യത വ്യക്തമാക്കുന്നു, ഓപ്ഷണൽ ആണ്. ഈ പരാമീറ്റർ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, ഡിഫോൾട്ട് മൂല്യം 0 ആയിരിക്കും, ഇത് അടുത്തുള്ള പൂർണ്ണസംഖ്യയിലേക്ക് റൗണ്ട് ചെയ്യണമെന്ന് സൂചിപ്പിക്കുന്നു.

1601.916 എന്ന നമ്പറിനായി പട്ടിക 10-1 പരിഗണിക്കുക. നെഗറ്റീവ് പ്രിസിഷൻ മൂല്യങ്ങൾ പോയിന്റിന്റെ ഇടതുവശത്താണ് (പൂർണ്ണസംഖ്യ ഭാഗം), പോസിറ്റീവ് പ്രിസിഷൻ മൂല്യങ്ങൾ പോയിന്റിന്റെ വലതുവശത്ത് (ഫ്രാക്ഷണൽ ഭാഗം) കണക്കാക്കുന്നു.

കൃത്യമായ മൂല്യം ഒന്നാണെങ്കിൽ, മൂല്യം അടുത്തുള്ള പത്തിലേക്ക് റൗണ്ട് ചെയ്യപ്പെടും. രണ്ടാണെങ്കിൽ, മൂല്യം രണ്ടാമത്തെ ഓർഡറിലേക്ക് റൗണ്ട് ചെയ്യപ്പെടും. ഇനിപ്പറയുന്ന ചോദ്യങ്ങൾ ഈ ഫംഗ്‌ഷന്റെ ഉപയോഗം കാണിക്കുന്നു

ചോദ്യം 1: ഇരട്ടയിൽ നിന്ന് റൗണ്ട് (1601.916, 1) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 2: ഇരട്ടയിൽ നിന്ന് റൗണ്ട് (1601.916, 2) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 3: ഇരട്ടയിൽ നിന്ന് റൗണ്ട് (1601.916, -3) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 4: ഇരട്ടയിൽ നിന്ന് റൗണ്ട് (1601.916) തിരഞ്ഞെടുക്കുക;

ആദ്യ ചോദ്യം ഒന്നിന് തുല്യമായ പ്രിസിഷൻ പാരാമീറ്റർ ഉപയോഗിക്കുന്നു, അതായത് സംഖ്യ ഏറ്റവും അടുത്തുള്ള പത്തിലൊന്നിലേക്ക് റൗണ്ട് ചെയ്യപ്പെടും. നൂറാമത്തെ ഭാഗത്തിന്റെ മൂല്യം ഒന്നിന് (5-ൽ കുറവ്) തുല്യമായതിനാൽ, അത് വൃത്താകൃതിയിലാക്കി, മൂല്യം 1601.9 തിരികെ നൽകുന്നു. രണ്ടാമത്തെ ചോദ്യത്തിന്റെ കൃത്യത രണ്ടാണ്, അതിനാൽ മൂല്യം ഏറ്റവും അടുത്തുള്ള നൂറിലൊന്നിലേക്ക് ചുറ്റപ്പെട്ടിരിക്കുന്നു. ആയിരത്തിലൊന്ന് മൂല്യം 6 ആയതിനാൽ (അത് 5-നേക്കാൾ വലുതാണ്), നൂറിലൊന്ന് മൂല്യം റൗണ്ട് അപ്പ് ചെയ്യുകയും തിരികെ നൽകിയ മൂല്യം 1601.92 ആണ്. മൂന്നാമത്തെ അഭ്യർത്ഥനയിലെ പ്രിസിഷൻ പാരാമീറ്ററിന്റെ മൂല്യം മൈനസ് മൂന്ന് ആണ്. മൂല്യം നെഗറ്റീവ് ആയതിനാൽ, കാലയളവിന്റെ ഇടതുവശത്തുള്ള മൂന്നാം സ്ഥാനത്തിന്റെ മൂല്യത്തെ അടിസ്ഥാനമാക്കി അത് റൗണ്ട് അപ്പ് ചെയ്യും എന്നാണ് ഇതിനർത്ഥം, രണ്ടാം സ്ഥാനത്ത് (നൂറുകണക്കിന്), മൂല്യം 6 ആണ്. 6 എന്നത് അഞ്ചിനേക്കാൾ വലുതായതിനാൽ, ഇത് റൗണ്ട് അപ്പ് ചെയ്‌ത് മൂല്യം 2000 തിരികെ നൽകുന്നു. കൃത്യമായ പാരാമീറ്റർ ഇല്ലാത്ത ഒരു ഫംഗ്‌ഷനെ ചോദ്യം 4 വിളിക്കുന്നു. ഇതിനർത്ഥം ഈ സംഖ്യ ഏറ്റവും അടുത്തുള്ള പൂർണ്ണ സംഖ്യയിലേക്ക് റൗണ്ട് ചെയ്തിരിക്കുന്നു എന്നാണ്. പത്താം ഭാഗം 9 ആയതിനാൽ, മൂല്യം റൗണ്ട് അപ്പ് ചെയ്യുകയും തിരികെ നൽകിയ മൂല്യം 1602 ആണ്.

സംഖ്യാ പ്രവർത്തനം TRUNC

TRUNC ഫംഗ്ഷൻ കൃത്യമായ പരാമീറ്ററിന്റെ മൂല്യത്തെ അടിസ്ഥാനമാക്കി ഒരു സംഖ്യയുടെ മൂല്യം കുറയ്ക്കുന്നു. റിഡക്ഷൻ റൗണ്ടിംഗിൽ നിന്ന് വ്യത്യസ്തമാണ്, റിഡക്ഷൻ സമയത്ത് അധിക ഭാഗം വെട്ടിക്കളയുകയും സംഖ്യയുടെ ശേഷിക്കുന്ന അക്കങ്ങളിൽ മാറ്റങ്ങളൊന്നും സംഭവിക്കാതിരിക്കുകയും ചെയ്യുന്നു. കൃത്യമായ മൂല്യം നെഗറ്റീവ് ആണെങ്കിൽ, ദശാംശ പോയിന്റിന്റെ ഇടതുവശത്തുള്ള സ്ഥാനത്ത് ഇൻപുട്ട് മൂല്യം വെട്ടിച്ചുരുക്കുന്നു. ഫംഗ്‌ഷന്റെ വാക്യഘടന TRUNC (ഉറവിട നമ്പർ, ദശാംശ കൃത്യത) ആണ്. ഉറവിട നമ്പർ പരാമീറ്റർ ഏത് സംഖ്യയും ആകാം, ഈ പരാമീറ്റർ ആവശ്യമാണ്. ഡെസിമൽ പ്രിസിഷൻ പാരാമീറ്റർ റൗണ്ടിംഗ് സ്ഥാനം വ്യക്തമാക്കുന്നു, അത് ഓപ്ഷണലാണ്; ഡിഫോൾട്ട് മൂല്യം പൂജ്യമായിരിക്കും, അതായത് ഒരു പൂർണ്ണസംഖ്യയിലേക്ക് കുറയ്ക്കുക.

ഡെസിമൽ പ്രിസിഷൻ മൂല്യം ഒന്നാണെങ്കിൽ, സംഖ്യ പത്തിലൊന്നായി കുറയും, രണ്ടാണെങ്കിൽ, നൂറിലൊന്ന് എന്നിങ്ങനെ. ഈ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നതിനുള്ള ചില ഉദാഹരണങ്ങൾ നോക്കാം

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് ട്രങ്ക് (1601.916, 1) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 2: ഡ്യുവലിൽ നിന്ന് ട്രങ്ക് (1601.916, 2) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 3: ഡ്യുവലിൽ നിന്ന് ട്രങ്ക് (1601.916, -3) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 4: ഡ്യുവലിൽ നിന്ന് ട്രങ്ക് (1601.916) തിരഞ്ഞെടുക്കുക;

ചോദ്യം 1 ഒന്നിന്റെ കൃത്യത ഉപയോഗിക്കുന്നു, അതായത് മൂല്യം പത്തിലൊന്നായി കുറയ്ക്കുകയും 1601.9 മൂല്യം നൽകുകയും ചെയ്യുന്നു. രണ്ടാമത്തെ ചോദ്യത്തിലെ കൃത്യത രണ്ടാണ്, യഥാർത്ഥ മൂല്യം നൂറിലൊന്നായി കുറയ്ക്കുകയും മൂല്യം 1601.91 തിരികെ നൽകുകയും ചെയ്യുന്നു. ROUND എന്ന് വിളിക്കുന്നത് റൗണ്ട് അപ്പ് ചെയ്യുന്നതിനാൽ, ഫലമായുണ്ടാകുന്ന മൂല്യം ROUND ഫംഗ്‌ഷൻ നൽകുന്ന മൂല്യത്തിൽ നിന്ന് വ്യത്യസ്തമാകുമെന്നത് ശ്രദ്ധിക്കുക (6 എന്നത് 5-നേക്കാൾ വലുതാണ്). ക്വറി നമ്പർ മൂന്ന്, കൃത്യമായ പരാമീറ്ററിന്റെ മൂല്യമായി നെഗറ്റീവ് നമ്പർ ഉപയോഗിക്കുന്നു. ദശാംശ ബിന്ദുവിന്റെ ഇടതുവശത്തുള്ള സ്ഥാനം മൂന്ന് അർത്ഥമാക്കുന്നത്, പട്ടിക 10-1 ൽ കാണിച്ചിരിക്കുന്നതുപോലെ ചുരുക്കം മൂന്നാമത്തെ അക്കത്തിലേക്ക് (നൂറുകണക്കിന് ചുരുക്കി) ആയിരിക്കും, റിട്ടേൺ മൂല്യം 1000 ആയിരിക്കും. ഒടുവിൽ, നാലാമത്തെ ചോദ്യത്തിൽ, കൃത്യമായ മൂല്യം വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ല കൂടാതെ യഥാർത്ഥ സംഖ്യയുടെ ഫ്രാക്ഷണൽ ഭാഗം ചുരുക്കിയിരിക്കുന്നു. ഫലം 1601 ആയിരിക്കും.

MOD ഫംഗ്ഷൻ

MOD ഫംഗ്‌ഷൻ ഒരു ഡിവിഷന്റെ ബാക്കി ഭാഗം നൽകുന്നു. രണ്ട് സംഖ്യകൾ, ഡിവിഡന്റ് (വിഭജിക്കപ്പെടുന്ന സംഖ്യ), വിഭജനം (വിഭജിക്കുന്ന സംഖ്യ) എന്നിവ പാരാമീറ്ററുകളായി നിർവചിക്കുകയും ഡിവിഷൻ പ്രവർത്തനം കണക്കാക്കുകയും ചെയ്യുന്നു. ലാഭവിഹിതം മുഴുവൻ ഹരിച്ചാൽ ഹരിച്ചാൽ, പൂജ്യം തിരികെ നൽകും, കാരണം ബാക്കിയില്ല. വിഭജനം പൂജ്യമാണെങ്കിൽ, പൂജ്യം കൊണ്ടുള്ള ഒരു വിഭജനം പിശക് സംഭവിക്കുന്നില്ല, പക്ഷേ ലാഭവിഹിതം തിരികെ നൽകും. വിഭജനം ലാഭവിഹിതത്തേക്കാൾ വലുതാണെങ്കിൽ, ലാഭവിഹിതം തിരികെ നൽകും.

MOD ഫംഗ്‌ഷന് രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകൾ ഉണ്ട്, വാക്യഘടന MOD (ഡിവിഡന്റ്, ഡിവൈസർ) ആണ്. ഡിവിഡന്റ്, ഡിവൈസർ പാരാമീറ്ററുകൾ സംഖ്യാ അക്ഷരങ്ങളോ നിരകളോ പദപ്രയോഗങ്ങളോ ആകാം, പോസിറ്റീവ് അല്ലെങ്കിൽ നെഗറ്റീവ് ആകാം. ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ ഈ ഫംഗ്‌ഷന്റെ ഉപയോഗം കാണിക്കുന്നു

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് മോഡ് (6, 2) തിരഞ്ഞെടുക്കുക

ചോദ്യം 2: ഡ്യുവലിൽ നിന്ന് മോഡ് (5, 3) തിരഞ്ഞെടുക്കുക

ചോദ്യം 3: ഡ്യുവലിൽ നിന്ന് മോഡ് (7, 35) തിരഞ്ഞെടുക്കുക

ചോദ്യം 4: ഡ്യുവലിൽ നിന്ന് മോഡ് (5.2, 3) തിരഞ്ഞെടുക്കുക

അഭ്യർത്ഥനയിൽ ഒന്ന് 6-നെ ബാക്കിയില്ലാതെ രണ്ടായി ഹരിച്ചാൽ 0 തിരികെ ലഭിക്കും, അഭ്യർത്ഥന രണ്ടിൽ 5-നെ 3 കൊണ്ട് ഹരിച്ചാൽ, പൂർണ്ണസംഖ്യ 1 ഉം ബാക്കി 2-ഉം നൽകും. അഭ്യർത്ഥന നമ്പർ 3-ൽ ഏഴിനെ 35 കൊണ്ട് ഹരിക്കുന്നു. ഡിവിഡന്റിനേക്കാൾ വലുതായതിനാൽ, ഡിവിഡന്റ് തിരികെ നൽകുന്നു, ആ. പൂർണ്ണസംഖ്യയുടെ ഭാഗം 0 ആണ്. ചോദ്യം നാലിൽ ഒരു ഭിന്നസംഖ്യ അതിന്റെ ലാഭവിഹിതമായി ഉപയോഗിക്കുന്നു. മുഴുവൻ ഭാഗവും ഒന്നായിരിക്കും, ബാക്കിയുള്ളത് 2.2 ആയിരിക്കും.

ഏത് ഇരട്ട സംഖ്യയെയും ബാക്കിയില്ലാതെ രണ്ടായി ഹരിക്കാനാകും, രണ്ടായി ഹരിക്കുമ്പോൾ ഏത് ഒറ്റ സംഖ്യയും 1 ന്റെ ബാക്കി നൽകും. അതിനാൽ, ഇരട്ട സംഖ്യകളെ വേർതിരിച്ചറിയാൻ പലപ്പോഴും MOD ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.

തീയതികളുമായി പ്രവർത്തിക്കുന്നു

തീയതി ഫംഗ്‌ഷനുകൾ ഒരു പ്രത്യേക മാസത്തിലെ ദിവസങ്ങളുടെ എണ്ണം കണക്കിലെടുക്കാതെ തീയതികളുമായി ബന്ധപ്പെട്ട പ്രശ്‌നങ്ങൾ പരിഹരിക്കുന്നതിനുള്ള സൗകര്യപ്രദമായ മാർഗം വാഗ്ദാനം ചെയ്യുന്നു. ആദ്യം, തീയതി ഡാറ്റ എങ്ങനെ സംഭരിക്കുന്നുവെന്നും തീയതി ഫോർമാറ്റിംഗും കൂടാതെ SYSDATE ഫംഗ്‌ഷനും നോക്കാം. അടുത്തതായി, ഞങ്ങൾ ADD_MONTHS, MONTHS_BETWEEN, LAST_DAT, NEXT_DAY, ROUND, TRUNC ഫംഗ്‌ഷനുകൾ നോക്കും.

ഒരു ഡാറ്റാബേസിൽ ഒരു തീയതി സംഭരിക്കുന്നു

നൂറ്റാണ്ട്, വർഷം, മാസം, ദിവസം എന്നിവയുടെ കണക്കുകൂട്ടലിനെ പിന്തുണയ്ക്കാൻ കഴിവുള്ള ഡാറ്റാബേസ് ഡാറ്റ ഒരു സംഖ്യയായി സംഭരിക്കുന്നു, കൂടാതെ മണിക്കൂർ, മിനിറ്റ്, സെക്കൻഡ് തുടങ്ങിയ സമയ വിവരങ്ങളും. ഒരു ഡാറ്റാ അഭ്യർത്ഥന സംഭവിക്കുമ്പോൾ, ഒരു നിശ്ചിത ഫോർമാറ്റിംഗ് (മാസ്ക്) നമ്പറിലേക്ക് പ്രയോഗിക്കുന്നു, കൂടാതെ സ്ഥിരസ്ഥിതിയായി മാസ്ക് ദിവസം, മാസത്തിന്റെ ആദ്യ മൂന്ന് അക്ഷരങ്ങളും വർഷത്തെ പ്രതിനിധീകരിക്കുന്ന രണ്ട് അക്കങ്ങളും പ്രദർശിപ്പിക്കുന്നു.

SYSDATE ഫംഗ്‌ഷൻ

SYSDATE ഫംഗ്‌ഷൻ ഇൻപുട്ട് പാരാമീറ്ററുകൾ ഉപയോഗിക്കുന്നില്ല കൂടാതെ ഡാറ്റാബേസ് സെർവറിൽ സജ്ജീകരിച്ചിരിക്കുന്ന നിലവിലെ സമയവും തീയതിയും നൽകുന്നു. ഡിഫോൾട്ടായി, SYSDATE ഫംഗ്‌ഷൻ DD-MON-RR ഫോർമാറ്റിൽ ഒരു തീയതി നൽകുകയും സെർവറിൽ തീയതി പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്നു. ക്ലയന്റ് മെഷീനിൽ നിന്ന് വ്യത്യസ്തമായ സമയ മേഖലയിലാണ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നതെങ്കിൽ, SYSDATE നൽകുന്ന സമയവും തീയതിയും ക്ലയന്റ് മെഷീനിലെ പ്രാദേശിക മൂല്യങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായിരിക്കും. സെർവറിൽ സിസ്റ്റം തീയതി പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഇതുപോലുള്ള ഒരു അന്വേഷണം പ്രവർത്തിപ്പിക്കാം

ഡ്യുവലിൽ നിന്ന് sysdate തിരഞ്ഞെടുക്കുക

തീയതികളുള്ള കണക്ക്

തീയതികളുമായി പ്രവർത്തിക്കുമ്പോൾ ഇനിപ്പറയുന്ന സമവാക്യം ഒരു പ്രധാന തത്വം കാണിക്കുന്നു

തീയതി 1 - തീയതി 2 = സംഖ്യ 1

തീയതി മറ്റൊരു തീയതിയിൽ നിന്ന് കുറയ്ക്കാം. രണ്ട് തീയതികൾ തമ്മിലുള്ള വ്യത്യാസം അവ തമ്മിലുള്ള ദിവസങ്ങളുടെ എണ്ണമായി മനസ്സിലാക്കുന്നു. ഭിന്നസംഖ്യകൾ ഉൾപ്പെടെ ഏത് സംഖ്യയും ഒരു തീയതിയിൽ നിന്ന് ചേർക്കാനോ കുറയ്ക്കാനോ കഴിയും. ഈ സാഹചര്യത്തിൽ, സംഖ്യ ദിവസങ്ങളുടെ എണ്ണത്തെ പ്രതിനിധീകരിക്കുന്നു. ഒരു സംഖ്യയും തീയതിയും തമ്മിലുള്ള തുക അല്ലെങ്കിൽ വ്യത്യാസം എല്ലായ്പ്പോഴും ഒരു തീയതിയാണ്. രണ്ട് തീയതികളുടെ സങ്കലനമോ ഗുണനമോ വിഭജനമോ അസാധ്യമാണെന്ന് ഈ തത്വം സൂചിപ്പിക്കുന്നു.

മാസങ്ങളുടെ പ്രവർത്തനം_ഇടയ്ക്ക്

ആവശ്യമുള്ള രണ്ട് ഇൻപുട്ട് പാരാമീറ്ററുകൾക്കിടയിലുള്ള മാസങ്ങളുടെ എണ്ണം MONTHS_BETWEEN ഫംഗ്‌ഷൻ നൽകുന്നു. പ്രവർത്തന വാക്യഘടന MONTHS_BETWEEN(തീയതി1, തീയതി2). ഫംഗ്ഷൻ തീയതി 1, തീയതി 2 എന്നിവ തമ്മിലുള്ള വ്യത്യാസം കണക്കാക്കുന്നു. തീയതി1 തീയതി 2-നേക്കാൾ കുറവാണെങ്കിൽ, ഒരു നെഗറ്റീവ് നമ്പർ നൽകും. റിട്ടേൺ മൂല്യത്തിൽ രണ്ട് തീയതികൾക്കിടയിലുള്ള മാസങ്ങളുടെ എണ്ണത്തെ പ്രതിനിധീകരിക്കുന്ന ഒരു പൂർണ്ണസംഖ്യയും മാസങ്ങളുടെ പൂർണ്ണസംഖ്യ കുറച്ചതിന് ശേഷം എത്ര ദിവസങ്ങളും മണിക്കൂറുകളും അവശേഷിക്കുന്നുവെന്ന് (31 ദിവസത്തെ ഒരു മാസത്തെ അടിസ്ഥാനമാക്കി) പ്രതിനിധീകരിക്കുന്ന ഒരു ഫ്രാക്ഷണൽ ഭാഗവും അടങ്ങിയിരിക്കാം. . താരതമ്യപ്പെടുത്തുന്ന മാസങ്ങളുടെ ദിവസം സമാനമോ അല്ലെങ്കിൽ ബന്ധപ്പെട്ട മാസത്തിന്റെ അവസാന ദിവസമോ ആണെങ്കിൽ പൂർണ്ണസംഖ്യ തിരികെ നൽകും.

ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ MONTHS_BETWEEN ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു

ചോദ്യം 1: ഡ്യുവലിൽ നിന്ന് മാസങ്ങൾ_ഇടയ്‌ക്ക് (sysdate, sysdate-31) തിരഞ്ഞെടുക്കുക;

നിലവിലെ തീയതി ഏപ്രിൽ 16, 2009 ആണെന്ന് നമുക്ക് അനുമാനിക്കാം. 2009 ഏപ്രിൽ 16 നും 2009 മാർച്ച് 16 നും ഇടയിലുള്ള മാസങ്ങളുടെ എണ്ണമായി ഒന്ന് അന്വേഷണം നൽകും. ചോദ്യം രണ്ട്, DD-MON-YYYY എന്ന ഫോർമാറ്റ് ഉപയോഗിച്ച് അക്ഷരാർത്ഥങ്ങളെ തീയതികളാക്കി മാറ്റുന്നു. സമയ ഭാഗം നഷ്ടപ്പെട്ടതിനാൽ, രണ്ട് തീയതികൾക്കും Oracle സമയ മൂല്യം 00.00.00 ആയി സജ്ജീകരിക്കും. ഫംഗ്‌ഷൻ ഏകദേശം 1.03225806 ന് തുല്യമായ ഒരു മൂല്യം നൽകും. ഫലത്തിന്റെ പൂർണ്ണസംഖ്യ എന്നതിനർത്ഥം തീയതികൾക്കിടയിൽ ഒരു മാസമുണ്ട് എന്നാണ്. ഫെബ്രുവരി 28 നും മാർച്ച് 28 നും ഇടയിൽ കൃത്യമായി ഒരു മാസമുണ്ട്. അപ്പോൾ ഫ്രാക്ഷണൽ ഭാഗം കൃത്യമായി ഒരു ദിവസം കാണിക്കണം. ഫലത്തിൽ മണിക്കൂറുകളും മിനിറ്റുകളും സെക്കൻഡുകളും ഉൾപ്പെടുന്നു, എന്നാൽ ഞങ്ങളുടെ കാര്യത്തിൽ തീയതികളുടെ സമയ ഘടകം സമാനമാണ്. 0.03225806 നെ 31 കൊണ്ട് ഗുണിച്ചാൽ 1 ലഭിക്കും, കാരണം MONTHS_BETWEEN തിരിച്ചുള്ള ഫ്രാക്ഷണൽ ഭാഗം മാസം കൃത്യമായി 31 ദിവസമാണെന്ന് കണക്കാക്കുന്നു. അതിനാൽ, ചോദ്യം നമ്പർ മൂന്ന് മൂല്യം 32 നൽകും.

ഒരു ഫംഗ്‌ഷന്റെ റിട്ടേൺ ഡാറ്റ തരം ഫംഗ്‌ഷന്റെ തരത്തെ ആശ്രയിച്ചിരിക്കുന്നുവെന്ന് അനുമാനിക്കുന്നതാണ് ഒരു ജനപ്രിയ തെറ്റ് (തീയതി ഫംഗ്‌ഷനുകൾ ഒരു തീയതി നൽകണം, സ്ട്രിംഗ് പ്രോസസ്സിംഗ് ഫംഗ്‌ഷനുകൾ ഒരു സ്‌ട്രിംഗ് തിരികെ നൽകണം). ഇത് സംഖ്യാപരമായ പ്രവർത്തനങ്ങൾക്ക് മാത്രം ശരിയാണ്. പ്രതീകത്തിനും തീയതി ഫംഗ്‌ഷനുകൾക്കും ഏത് തരത്തിലുള്ള ഡാറ്റയുടെയും മൂല്യം നൽകാനാകും. ഉദാഹരണത്തിന്, INSTR ഒരു പ്രതീക ഫംഗ്‌ഷനും MONTS_BETWEEN ഒരു തീയതി ഫംഗ്‌ഷനുമാണ്, എന്നാൽ രണ്ടും ഒരു നമ്പർ നൽകുന്നു. തീയതികൾ തമ്മിലുള്ള വ്യത്യാസം യഥാർത്ഥത്തിൽ തീയതി ആയിരിക്കുന്ന തീയതിയാണെന്ന് പലപ്പോഴും തെറ്റിദ്ധരിക്കപ്പെടുന്നു.

ADD ഫംഗ്‌ഷൻ_മാസം

ADD_MONTHS ഫംഗ്‌ഷൻ ഒരു യഥാർത്ഥ തീയതിയിലേക്ക് നിശ്ചിത മാസങ്ങളുടെ എണ്ണം ചേർത്തുകൊണ്ട് ലഭിച്ച തീയതി നൽകുന്നു. ഈ ഫംഗ്‌ഷന് ആവശ്യമായ രണ്ട് പാരാമീറ്ററുകൾ ഉണ്ട്, വാക്യഘടന ADD_MONTHS ആണ് (ആരംഭ തീയതി, മാസങ്ങളുടെ എണ്ണം). മാസങ്ങളുടെ പാരാമീറ്ററിന്റെ മൂല്യം നെഗറ്റീവ് ആയിരിക്കാം, അപ്പോൾ യഥാർത്ഥ മൂല്യം ഈ മാസങ്ങളുടെ എണ്ണവും ഫ്രാക്ഷണലും കൊണ്ട് കുറയ്ക്കും, പക്ഷേ പൂർണ്ണസംഖ്യയുടെ ഭാഗം മാത്രമേ കണക്കിലെടുക്കൂ. ഇനിപ്പറയുന്ന മൂന്ന് അന്വേഷണങ്ങൾ ADD_MONTHS ഫംഗ്‌ഷന്റെ ഉപയോഗം കാണിക്കുന്നു

ആദ്യ ചോദ്യത്തിന്റെ ഫലം 2009 മെയ് 7 ആയിരിക്കും, കാരണം സാധ്യമെങ്കിൽ ദിവസം അതേപടി തുടരുകയും മാസം ഒന്നായി വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു. രണ്ടാമത്തെ ചോദ്യത്തിൽ, മാസങ്ങളുടെ എണ്ണം ഫ്രാക്ഷണൽ ആണ്, അത് അവഗണിക്കപ്പെട്ടു, അതായത്, ഈ ചോദ്യം ADD_MONTHS('31-DEC-2008',2) ന് തുല്യമാണ്. രണ്ട് മാസം ചേർത്താൽ 31-FEB-2009 നൽകണം, എന്നാൽ അത്തരമൊരു തീയതി നിലവിലില്ല, അതിനാൽ മാസത്തിന്റെ അവസാന ദിവസം തിരികെ നൽകും. അവസാനത്തെ ഉദാഹരണം മാസങ്ങളുടെ പാരാമീറ്ററിന് ഒരു നെഗറ്റീവ് നമ്പർ ഉപയോഗിക്കുന്നു കൂടാതെ യഥാർത്ഥ മൂല്യത്തേക്കാൾ പന്ത്രണ്ട് മാസം മുമ്പുള്ള തീയതി 07-APR-2008 നൽകുന്നു.

അടുത്ത പ്രവർത്തനം_DAY

NEXT_DATE ഫംഗ്‌ഷൻ യഥാർത്ഥ തീയതിക്ക് ശേഷമുള്ള ആഴ്‌ചയിലെ ഏറ്റവും അടുത്ത നിർദ്ദിഷ്ട ദിവസം നൽകുന്നു. ഈ ഫംഗ്‌ഷന് ആവശ്യമായ രണ്ട് പാരാമീറ്ററുകൾ ഉണ്ട്, വാക്യഘടന NEXT_DAY (ആരംഭ തീയതി, ആഴ്ചയിലെ ദിവസം) ആണ്. ആരംഭ തീയതിക്ക് ശേഷം ആഴ്ചയിലെ നിർദ്ദിഷ്ട ദിവസം സംഭവിക്കുമ്പോൾ ഫംഗ്ഷൻ മൂല്യം കണക്കാക്കുന്നു. ആഴ്‌ചയിലെ ദിവസം പാരാമീറ്റർ ഒരു സംഖ്യയായോ സ്‌ട്രിങ്ങായോ വ്യക്തമാക്കാം. NLS_DATE_LANGUAGE പാരാമീറ്ററാണ് സാധുവായ മൂല്യങ്ങൾ നിർണ്ണയിക്കുന്നത്, ഡിഫോൾട്ടായി ആഴ്ചയിലെ ദിവസത്തിന്റെ പേരിന്റെ ആദ്യ മൂന്ന് അക്ഷരങ്ങൾ (സൂര്യൻ, മോൺ മുതലായവ) അല്ലെങ്കിൽ 1 ഞായറാഴ്ചയും 2 തിങ്കളാഴ്ചയും, പൂർണ്ണസംഖ്യകളും ഉപയോഗിക്കുന്നു. ഓൺ. കൂടാതെ പ്രവൃത്തിദിവസത്തെ പേരുകൾക്ക് മൂന്നിൽ കൂടുതൽ പ്രതീകങ്ങൾ ഉണ്ടായിരിക്കാം; ഉദാഹരണത്തിന്, ഞായറാഴ്ചയെ സൂര്യൻ, സൂര്യൻ, ഞായർ എന്നിങ്ങനെ വ്യക്തമാക്കാം. നമുക്ക് നിരവധി അഭ്യർത്ഥനകൾ പരിഗണിക്കാം

2009 ജനുവരി 1 വ്യാഴാഴ്ചയാണ്. അടുത്ത ചൊവ്വാഴ്ച 5 ദിവസങ്ങൾക്കുള്ളിൽ, ജനുവരി 6, 2009. രണ്ടാമത്തെ അഭ്യർത്ഥന ജനുവരി 7, 2009 - ജനുവരി 1-ന് ശേഷമുള്ള അടുത്ത ബുധനാഴ്ച. മൂന്നാമത്തെ ചോദ്യം ഒരു പാരാമീറ്ററായി ഒരു നമ്പർ ഉപയോഗിക്കുന്നു, നിങ്ങൾക്ക് അമേരിക്കൻ മൂല്യങ്ങൾ സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, അഞ്ചാം ദിവസം വ്യാഴാഴ്ചയാണ്. ജനുവരി 1 ന് ശേഷമുള്ള അടുത്ത വ്യാഴാഴ്ച കൃത്യം ഒരാഴ്ച കഴിഞ്ഞ് - ജനുവരി 8, 2009.

അവസാന പ്രവർത്തനം_DAY

LAST_DAY ഫംഗ്‌ഷൻ യഥാർത്ഥ തീയതിയുടെ മാസത്തിലെ അവസാന ദിവസത്തെ തീയതി നൽകുന്നു. ഈ ഫംഗ്‌ഷന് ആവശ്യമായ ഒരു പാരാമീറ്ററും വാക്യഘടനയും LAST_DAY(ആരംഭ തീയതി) ആവശ്യമാണ്. ഫംഗ്‌ഷൻ ഉറവിട തീയതിയുടെ മാസം തിരഞ്ഞെടുക്കുകയും മാസത്തിന്റെ അവസാന ദിവസം കണക്കാക്കുകയും ചെയ്യുന്നു. ഇനിപ്പറയുന്ന ചോദ്യം 2009 ജനുവരി 31-ന് നൽകും

ROUND പ്രവർത്തനംതീയതികളുമായി പ്രവർത്തിക്കുന്നതിന്

ROUND ഫംഗ്‌ഷൻ ഒരു തീയതി മൂല്യത്തെ നിർദ്ദിഷ്ട തീയതി കൃത്യതയിലേക്ക് റൗണ്ട് ചെയ്യുന്നു. വൃത്താകൃതിയിലുള്ള മൂലകത്തിന്റെ മൂല്യത്തെ ആശ്രയിച്ച് മടക്ക മൂല്യം മുകളിലേക്കോ താഴേക്കോ റൗണ്ട് ചെയ്‌തിരിക്കുന്നു. ഈ ഫംഗ്‌ഷന് ആവശ്യമായ ഒരു പാരാമീറ്റർ ആവശ്യമാണ്, കൂടാതെ ഒരു ഓപ്‌ഷണൽ പാരാമീറ്റർ സ്വീകരിക്കുകയും ഫംഗ്‌ഷൻ വാക്യഘടന ROUND ആണ് (ഉറവിട തീയതി, ). ഉറവിട ഡാറ്റ പാരാമീറ്റർ തീയതി ഡാറ്റാ തരത്തിന്റെ ഏതെങ്കിലും ഘടകമാകാം. തീയതി പ്രിസിഷൻ ഫോർമാറ്റ് പാരാമീറ്റർ റൗണ്ടിംഗിന്റെ ലെവൽ വ്യക്തമാക്കുന്നു, സ്ഥിര മൂല്യം ദിവസം ആണ്. തീയതി കൃത്യമായ ഫോർമാറ്റ് സെഞ്ച്വറി (CC) വർഷം YYYY ക്വാർട്ടർ Q മാസം M ആഴ്‌ച W ദിവസം DD മണിക്കൂർ HH മിനിറ്റ് MI ആകാം.

ഒരു നൂറ്റാണ്ടിലേക്ക് റൗണ്ട് ചെയ്യുന്നത് നിലവിലെ നൂറ്റാണ്ടിലേക്ക് ഒന്ന് ചേർക്കുന്നതിന് തുല്യമാണ്. ദിവസം 16-ൽ കൂടുതലാണെങ്കിൽ മാസത്തെ റൗണ്ടിംഗ് അപ്പ് ചെയ്യും, അല്ലാത്തപക്ഷം അത് മാസത്തിന്റെ ആദ്യ ദിവസം വരെ റൗണ്ട് ചെയ്യപ്പെടും. മാസം ഒന്ന് മുതൽ ആറ് വരെയാണെങ്കിൽ, റൗണ്ടിംഗ് നടപ്പ് വർഷത്തിന്റെ തുടക്കത്തിലായിരിക്കും, അല്ലാത്തപക്ഷം അടുത്ത വർഷത്തിന്റെ ആരംഭ തീയതി തിരികെ നൽകും. അപേക്ഷ പരിഗണിക്കാം

ഈ അഭ്യർത്ഥന 2009 ഏപ്രിൽ 17-ന് 00:05-ന് നടപ്പിലാക്കിയതായി നമുക്ക് അനുമാനിക്കാം. ആദ്യം, നിലവിലെ തീയതി ഏറ്റവും അടുത്തുള്ള ദിവസത്തിലേക്ക് റൗണ്ട് ചെയ്‌തിരിക്കുന്നു (പ്രിസിഷൻ പാരാമീറ്റർ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ല). സമയം 00:05 ആയതിനാൽ, ദിവസം റൗണ്ട് അപ്പ് ചെയ്‌തിട്ടില്ല. 2009 ഏപ്രിൽ 1 ബുധനാഴ്‌ചയായതിനാൽ, യഥാർത്ഥ തീയതി ഉൾപ്പെടുന്ന ആഴ്‌ചയിലെ ബുധൻ രണ്ടാമത്തെ കോളം നൽകും. ഏപ്രിൽ 19 ഉൾപ്പെടുന്ന ആഴ്ചയിലെ ആദ്യത്തെ ബുധനാഴ്ച ഏപ്രിൽ 15, 2009 ആണ്. മൂന്നാമത്തെ കോളം മാസത്തെ അടുത്തത് വരെ റൗണ്ട് ചെയ്യുന്നു (17 എന്നത് 16-നേക്കാൾ വലുതായതിനാൽ) മെയ് 01, 2009 തിരികെ നൽകുന്നു. അവസാന കോളം അടുത്ത വർഷത്തേക്കുള്ള തീയതി റൗണ്ട് ചെയ്യുകയും 2009 ജനുവരി 1-ന് നൽകുകയും ചെയ്യുന്നു, കാരണം ഏപ്രിൽ നാലാമത്തെ മാസമാണ്.

TRUNC ഫംഗ്ഷൻതീയതികളുമായി പ്രവർത്തിക്കുമ്പോൾ

TRUNC ഫംഗ്‌ഷൻ കൃത്യമായ പരാമീറ്ററിനെ അടിസ്ഥാനമാക്കി തീയതിയെ ചുരുക്കുന്നു. ഈ ഫംഗ്‌ഷന് ആവശ്യമുള്ളതും ഒരു ഓപ്‌ഷണൽ പാരാമീറ്ററും ഉണ്ട് കൂടാതെ കോൾ സിന്റാക്‌സ് TRUNC ആണ് (ഉറവിട തീയതി, ). ഉറവിട തീയതി പാരാമീറ്റർ ഏതെങ്കിലും സാധുവായ തീയതി ആകാം. തീയതി പ്രിസിഷൻ ഫോർമാറ്റ് പാരാമീറ്റർ തീയതി ചുരുക്കലിന്റെ ലെവൽ വ്യക്തമാക്കുന്നു, അത് ഓപ്ഷണലാണ്; സ്ഥിര മൂല്യം ദിവസത്തേക്കുള്ള ചുരുക്കമാണ്. ഇതിനർത്ഥം എല്ലാ സമയ മൂല്യങ്ങളും 00 മണിക്കൂർ 00 മിനിറ്റ് 00 സെക്കൻഡ് ആയി പുനഃസജ്ജീകരിച്ചിരിക്കുന്നു എന്നാണ്. ഒരു മാസമായി കുറയ്ക്കുന്നത് യഥാർത്ഥ തീയതിയുടെ മാസത്തിന്റെ ആദ്യ ദിവസത്തിന് തുല്യമായ തീയതി നൽകും. വർഷത്തിലേക്ക് ചുരുക്കുന്നത് യഥാർത്ഥ തീയതിയുടെ വർഷത്തിന്റെ ആദ്യ ദിവസം തിരികെ നൽകും. വ്യത്യസ്ത പാരാമീറ്ററുകളുള്ള ഒരു ഫംഗ്ഷൻ ഉപയോഗിച്ച് ഒരു ചോദ്യം പരിഗണിക്കുക

ഈ അഭ്യർത്ഥന ഏപ്രിൽ 17-ന് 00:05-ന് നടപ്പിലാക്കും. ആദ്യ കോളം സിസ്റ്റം തീയതിയെ ഒരു ദിവസമായി ചുരുക്കുന്നു, സമയം 00:05 മുതൽ 00:00 വരെ പരിവർത്തനം ചെയ്യുന്നു (കൃത്യമായ പാരാമീറ്റർ വ്യക്തമായി വ്യക്തമാക്കിയിട്ടില്ല, സ്ഥിരസ്ഥിതിയാണ് ഉപയോഗിക്കുന്നത്) കൂടാതെ നിലവിലെ ദിവസം നൽകുന്നു. രണ്ടാമത്തെ കോളം, മാസത്തിലെ ആദ്യ (ബുധനാഴ്ച) ആയി ആഴ്ചയിലെ അതേ ദിവസത്തേക്കുള്ള തീയതിയെ ചുരുക്കി, നിലവിലെ ആഴ്ചയിലെ ബുധനാഴ്ച - ഏപ്രിൽ 15-ന് നൽകുന്നു. മൂന്നാമത്തെ കോളം തീയതിയെ ഒരു മാസമായി ചുരുക്കി മാസത്തിന്റെ ആദ്യ ദിവസം നൽകുന്നു - ഏപ്രിൽ 1. നാലാമത്തെ കോളം തീയതിയെ ഒരു വർഷമായി ചുരുക്കി വർഷത്തിന്റെ ആദ്യ ദിവസം നൽകുന്നു.

ലേഖനത്തിന്റെ മുമ്പത്തെ ഭാഗത്ത്, ബിൽറ്റ്-ഇൻ ഗണിത പ്രവർത്തനങ്ങൾ ഞങ്ങൾ നോക്കി. PL/SQL-ലെ ചോദ്യങ്ങളിലും പ്രോഗ്രാം കോഡിലും ഉപയോഗിക്കാവുന്ന ടെക്സ്റ്റ് വിവരങ്ങളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ ഭാഗം 5 ചർച്ച ചെയ്യും.

പ്രവർത്തനം CONCAT(str1, str2)

ഈ ഫംഗ്‌ഷൻ str1 ഉം str2 ഉം സ്ട്രിംഗുകളെ സംയോജിപ്പിക്കുന്നു. ആർഗ്യുമെന്റുകളിലൊന്ന് NULL ആണെങ്കിൽ, അത് ഒരു ശൂന്യമായ സ്ട്രിംഗായി കണക്കാക്കും. രണ്ട് ആർഗ്യുമെന്റുകളും NULL ആണെങ്കിൽ, ഫംഗ്ഷൻ NULL നൽകുന്നു.

CONCAT("ടെസ്റ്റ്", NULL) x2,

CONCAT(NULL, "ടെസ്റ്റ്") x3,

ConcAT(NULL, NULL) x4

സ്ട്രിംഗുകൾ സംയോജിപ്പിക്കാൻ, ഒറാക്കിൾ ഒരു പ്രത്യേക കോൺകാറ്റനേഷൻ ഓപ്പറേറ്ററെ പിന്തുണയ്ക്കുന്നു " ||» , CONCAT ഫംഗ്‌ഷന് സമാനമായി പ്രവർത്തിക്കുന്നു, ഉദാഹരണത്തിന്:

CONCAT തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു") x1,

"പുരോഹിതനിൽ" || "ഒരു നായ ഉണ്ടായിരുന്നു" x2

ഒരു കുറിപ്പിൽ

കോൺകാറ്റനേഷൻ ഓപ്പറേറ്റർ "||", ഇത് CONCAT ഫംഗ്‌ഷനെ വിളിക്കുന്നതിന് തുല്യവും ഗണിത പ്രവർത്തനങ്ങളിൽ ഉപയോഗിക്കുന്ന "+" ഓപ്പറേറ്ററും ആശയക്കുഴപ്പത്തിലാക്കരുത്. ഒറാക്കിളിൽ ഇവ വ്യത്യസ്ത ഓപ്പറേറ്റർമാരാണ്, എന്നാൽ ഓട്ടോമാറ്റിക് ടൈപ്പ് കാസ്റ്റിംഗ് കാരണം, സൂക്ഷ്മമായ പിശകുകൾ സാധ്യമാണ്, ഉദാഹരണത്തിന്:

"5" + "3" x1 തിരഞ്ഞെടുക്കുക

ഈ സാഹചര്യത്തിൽ, "53" എന്ന ടെക്‌സ്‌റ്റ് സ്‌ട്രിങ്ങിന് പകരം സംഖ്യാ മൂല്യം 8 നൽകുന്നു. കാരണം, Oracle "+" എന്ന ഗണിത ഓപ്പറേറ്ററെ കണ്ടെത്തുമ്പോൾ, Oracle സ്വയമേവ ആർഗ്യുമെന്റുകൾ NUMBER എന്ന് ടൈപ്പുചെയ്യാൻ ശ്രമിക്കുന്നു.

ഫംഗ്‌ഷൻ LOWER(str)

ലോവർ ഫംഗ്‌ഷൻ str-ലെ എല്ലാ പ്രതീകങ്ങളെയും ചെറിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു.

ലോവർ ("ടെക്സ്റ്റ് ഡാറ്റ") X തിരഞ്ഞെടുക്കുക

INITCAP(str) ഫംഗ്‌ഷൻ

വലിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്‌ത എല്ലാ വാക്കുകളുടെയും ആദ്യ അക്ഷരങ്ങളുള്ള സ്‌ട്രിംഗ് സ്‌ട്രിംഗ് നൽകുന്നു. റിപ്പോർട്ടുകൾ നിർമ്മിക്കുമ്പോൾ മുഴുവൻ പേര് ഫോർമാറ്റ് ചെയ്യുന്നതിന് ഫംഗ്ഷൻ സൗകര്യപ്രദമാണ്.

INITCAP ("ഇവാനോവി പെറ്റർ സിഡോറോവിച്ച്") X1 തിരഞ്ഞെടുക്കുക

പ്രവർത്തനങ്ങൾ LPAD(str,n, [,char]), RPAD(str,n, [,char])

LPAD ഫംഗ്‌ഷൻ സ്ട്രിംഗ് സ്‌ട്രിംഗ് നൽകുന്നു, ഒരു ചാർ ഉപയോഗിച്ച് ഇടത്, സ്ട്രിംഗ് നീളത്തിൽ എത്തുന്നതുവരെ എൻകഥാപാത്രങ്ങൾ. സ്ഥിരസ്ഥിതിയായി, പൂരിപ്പിക്കൽ പ്രതീകം ഒരു സ്‌പെയ്‌സാണ്, അത് വ്യക്തമാക്കിയേക്കില്ല. ഫംഗ്‌ഷനിലേക്ക് കടന്നുപോകുന്ന സ്ട്രിംഗിന്റെ ദൈർഘ്യം കൂടുതലാണെങ്കിൽ എൻ, തുടർന്ന് ഫംഗ്ഷൻ സ്ട്രിംഗ് മാറ്റമില്ലാതെ നൽകുന്നു. RPAD ഫംഗ്‌ഷൻ LPAD-ന് സമാനമാണ്, എന്നാൽ ശരിയായ പാഡിംഗ് നിർവഹിക്കുന്നു. റിപ്പോർട്ടുകൾ തയ്യാറാക്കുമ്പോൾ ടെക്സ്റ്റ് വിവരങ്ങൾ ഫോർമാറ്റ് ചെയ്യുന്നതിന് ഈ പ്രവർത്തനങ്ങൾ വളരെ സൗകര്യപ്രദമാണ്.

LPAD ("ടെസ്റ്റ്", 20) x1 തിരഞ്ഞെടുക്കുക,

RPAD("ടെസ്റ്റ്", 20) x2,

LPAD("ടെസ്റ്റ്", 20, "_") x3

ഫംഗ്‌ഷൻ REPLACE(str, search_str, [,replace_str])

REPLACE ഫംഗ്‌ഷൻ string str-ൽ ഒരു search_str പാറ്റേണിനായി തിരയുന്നു, കൂടാതെ ഓരോ സംഭവങ്ങളെയും മാറ്റി പകരം വയ്ക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, replace_str എന്നത് ശൂന്യമായ സ്ട്രിംഗ് ആണ്, അതിനാൽ രണ്ട് ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ച് REPLACE എന്ന് വിളിക്കുന്നത് കണ്ടെത്തിയ എല്ലാ സംഭവങ്ങളും നീക്കം ചെയ്യുന്നു. ഒരു സബ്‌സ്‌ട്രിംഗിനായുള്ള തിരയൽ കേസ് സെൻസിറ്റീവ് ആണ്.

മാറ്റിസ്ഥാപിക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ", "പൂച്ച") x1,

മാറ്റിസ്ഥാപിക്കുക("പുരോഹിതന് ഒരു ദുഷ്ടനായ നായ ഉണ്ടായിരുന്നു", "തിന്മ") x2,

മാറ്റിസ്ഥാപിക്കുക("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ", "പൂച്ച") x3

ഫംഗ്‌ഷൻ വിവർത്തനം ചെയ്യുക(str, from_mask, to_mask)

TRANSLATE ഫംഗ്‌ഷൻ സ്‌ട്രിംഗ് സ്‌ട്രിംഗ് പാഴ്‌സ് ചെയ്യുകയും from_mask സ്‌ട്രിംഗിൽ ദൃശ്യമാകുന്ന എല്ലാ പ്രതീകങ്ങളെയും to_mask-ൽ നിന്നുള്ള അനുബന്ധ പ്രതീകങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു. ഫംഗ്‌ഷൻ ശരിയായി പ്രവർത്തിക്കുന്നതിന്, from_mask, to_mask സ്‌ട്രിംഗുകൾ ഒരേ നീളമായിരിക്കണം, അല്ലെങ്കിൽ from_mask സ്ട്രിംഗ് to_mask-നേക്കാൾ നീളമുള്ളതായിരിക്കണം. from_mask to_mask-നേക്കാൾ ദൈർഘ്യമേറിയതാണെങ്കിൽ, സ്‌ട്രിംഗ് str പ്രോസസ്സ് ചെയ്യുമ്പോൾ, from_mask പ്രതീകങ്ങളിലൊന്നുമായി പൊരുത്തപ്പെടുന്ന പ്രതീകങ്ങൾ കണ്ടെത്തുകയും അതേ സമയം to_mask-ൽ അവയ്‌ക്ക് പൊരുത്തമില്ലെങ്കിൽ, അത്തരം പ്രതീകങ്ങൾ string str-ൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. നിങ്ങൾ from_mask അല്ലെങ്കിൽ to_mask NULL ന് തുല്യമായാൽ, ഫംഗ്‌ഷൻ NULL തിരികെ നൽകും. താരതമ്യം കേസ് സെൻസിറ്റീവ് ആണ്.

വിവർത്തനം തിരഞ്ഞെടുക്കുക("ടെസ്റ്റ് 12345", "e2", "E!") x1,

വിവർത്തനം ചെയ്യുക("ടെസ്റ്റ് 12345", "e234", "E") x2

പ്രതീക പരിവർത്തനം അല്ലെങ്കിൽ നിരോധിത പ്രതീകങ്ങൾക്കായി തിരയുന്നതുമായി ബന്ധപ്പെട്ട നിരവധി പ്രായോഗിക പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് ഈ ഫംഗ്ഷൻ സൗകര്യപ്രദമാണ്. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു പാസ്‌വേഡ് വിശകലനം ചെയ്യുകയും അതിൽ ഒരു അക്കമെങ്കിലും ഉണ്ടോ എന്ന് കണ്ടെത്തുകയും വേണം. TRANSLATE ഉപയോഗിച്ച് ഈ പരിശോധന നടപ്പിലാക്കുന്നത് ഇതുപോലെ കാണപ്പെടുന്നു:

വിവർത്തനം ചെയ്താൽ (PassWd, "0123456789", "*") = PassWd പിന്നെ

ADD_ERROR("പിശക് - പാസ്‌വേഡിൽ കുറഞ്ഞത് ഒരു അക്കമെങ്കിലും ഉണ്ടായിരിക്കണം!");

മറ്റൊരു ഉദാഹരണം: NUMBER-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനായി ഒരു നമ്പർ തയ്യാറാക്കിക്കൊണ്ടിരിക്കുകയാണ്. ഡെസിമൽ സെപ്പറേറ്ററുകൾ ",", "" എന്നിവ മാറ്റിസ്ഥാപിക്കേണ്ടത് ആവശ്യമാണ്. "" എന്നതിൽ കൂടാതെ ഇടങ്ങൾ നീക്കം ചെയ്യുക. TRANSLATE ഉപയോഗിച്ച് ഈ പ്രവർത്തനം നടപ്പിലാക്കുന്നത് ഇതുപോലെ കാണപ്പെടുന്നു:

വിവർത്തനം തിരഞ്ഞെടുക്കുക("123 455.23", "., ", "..") x1,

വിവർത്തനം ചെയ്യുക("-123 455.23", "., ", "..") x2

ഫംഗ്‌ഷൻ SUBSTR(str, m [,n])

SUBSTR ഫംഗ്‌ഷൻ, അക്ഷരത്തിൽ ആരംഭിക്കുന്ന സ്‌ട്രിംഗ് സ്‌ട്രിംഗിന്റെ ഒരു ഭാഗം നൽകുന്നു എംനീളം എൻകഥാപാത്രങ്ങൾ. ദൈർഘ്യം വ്യക്തമാക്കിയേക്കില്ല - ഈ സാഹചര്യത്തിൽ ചിഹ്നത്തിൽ നിന്നുള്ള സ്ട്രിംഗ് തിരികെ നൽകും എംവരിയുടെ അവസാനം വരെ str. പ്രതീക നമ്പറിംഗ് 1 മുതൽ ആരംഭിക്കുന്നു. നിങ്ങൾ വ്യക്തമാക്കുകയാണെങ്കിൽ എം= 0, തുടർന്ന് പകർത്തൽ ആദ്യ പ്രതീകത്തിൽ നിന്ന് ആരംഭിക്കും. ഒരു നെഗറ്റീവ് മൂല്യം വ്യക്തമാക്കുന്നു എംതുടക്കത്തിലേതിനേക്കാൾ വരിയുടെ അവസാനം മുതൽ പ്രതീകങ്ങൾ കണക്കാക്കാൻ കാരണമാകുന്നു. മൂല്യങ്ങൾ ക്രമീകരണം എംസ്ട്രിംഗ് ദൈർഘ്യത്തിന്റെ കേവല മൂല്യം കവിയുന്നത് ഫംഗ്‌ഷൻ NULL തിരികെ നൽകുന്നതിന് കാരണമാകുന്നു.

SUBSTR തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", 13) x1,

SUBSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", -6) x2,

SUBSTR("ഇത് ടെസ്റ്റ് ടെക്സ്റ്റ് ആണ്", 5, 8) x3,

SUBSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", 150) x4

വാചകം

ഫംഗ്‌ഷൻ INSTR(str, search_str [,n[,m]])

INSTR ഫംഗ്‌ഷൻ ആദ്യ പ്രതീകത്തിന്റെ സ്ഥാനം നൽകുന്നു എം string str ന്റെ th fragment, string search_str മായി പൊരുത്തപ്പെടുന്നു. സ്ട്രിംഗ് സ്‌ട്രിംഗിന്റെ nth പ്രതീകത്തിൽ നിന്നാണ് താരതമ്യം നടത്തുന്നത്; താരതമ്യം കേസ് സെൻസിറ്റീവ് ആണ്. സ്ഥിരസ്ഥിതി എൻ = എം= 1, അതായത്, വരിയുടെ തുടക്കം മുതൽ തിരയൽ നടത്തുകയും കണ്ടെത്തിയ ആദ്യ ശകലത്തിന്റെ സ്ഥാനം തിരികെ നൽകുകയും ചെയ്യുന്നു. തിരയൽ പരാജയപ്പെട്ടാൽ, ഫംഗ്ഷൻ 0 നൽകുന്നു.

INSTR തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ") x1,

INSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "പൂച്ച") x2,

INSTR("ടെക്‌സ്‌റ്റ് സെർച്ചിംഗ് തെളിയിക്കാനുള്ള ടെക്‌സ്‌റ്റാണിത്", "ടെക്‌സ്റ്റ്", 1, 2) x3,

INSTR("11111000000001", "1", 7) x4

ഒരു കുറിപ്പിൽ

ഈ ഫംഗ്ഷൻ ഉപയോഗിച്ച്, ഒറാക്കിളിലെ മറ്റെല്ലാവരുമായും, NULL മൂല്യങ്ങൾ കൈകാര്യം ചെയ്യുന്നതുമായി ബന്ധപ്പെട്ട സാധാരണ പിശകുകൾ പലപ്പോഴും സംഭവിക്കാറുണ്ട്. str=NULL ആണെങ്കിൽ, ഫംഗ്ഷൻ പൂജ്യമല്ല, NULL ആയി നൽകും! വിവിധ വ്യവസ്ഥകൾ നിർമ്മിക്കുമ്പോൾ ഇത് കണക്കിലെടുക്കണം. ഉദാഹരണത്തിന്, ഒരു PL/SQL പ്രോഗ്രാമിന്റെ ഈ ശകലം ഈ സവിശേഷത കണക്കിലെടുക്കുന്നില്ല:

INSTR(TXT_VAR, "*") = 0 ആണെങ്കിൽ

ഈ സാഹചര്യത്തിൽ, ഇങ്ങനെ എഴുതുന്നത് ശരിയായിരിക്കും:

NVL(INSTR(TXT_VAR, "*"), 0) = 0 എങ്കിൽ

ഫംഗ്‌ഷനുകൾ LENGTH(str), LENGTHB(str)

LENGTH(str) ഫംഗ്‌ഷൻ സ്‌ട്രിംഗിന്റെ ദൈർഘ്യം പ്രതീകങ്ങളിൽ നൽകുന്നു. ഒരു ശൂന്യമായ സ്‌ട്രിംഗിനും ഒരു NULL മൂല്യത്തിനും, ഫംഗ്‌ഷൻ NULL നൽകുന്നു, അതിനാൽ ഈ ഫംഗ്‌ഷനുമായി ചേർന്ന് NVL ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

നീളം തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു") x1,

നീളം(നല്ല) x3,

NVL(ദൈർഘ്യം(""), 0) x4

ഫംഗ്‌ഷൻ CHR(n)

ഒരു പ്രതീകം അതിന്റെ കോഡ് ഉപയോഗിച്ച് നൽകുന്നു.

CHR(64) x1 തിരഞ്ഞെടുക്കുക

സ്ട്രിംഗുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നത് ലളിതമാക്കുന്നതിന്, സ്ട്രിംഗുകളെ മറ്റ് തരത്തിലുള്ള ഡാറ്റയിലേക്ക് പരിവർത്തനം ചെയ്യുക, ഒരു സ്ട്രിംഗിലെ ഒരു സബ്‌സ്‌ട്രിംഗിനായി തിരയുക, ഒരു സ്ട്രിംഗിന്റെ ദൈർഘ്യം നിർണ്ണയിക്കുക തുടങ്ങിയ പ്രവർത്തനങ്ങളെ വളരെയധികം സഹായിക്കുന്ന നിരവധി ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനുകൾ ഉണ്ട്. ഈ ലേഖനത്തിൽ സ്ട്രിംഗുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള ഏറ്റവും സാധാരണമായ പ്രവർത്തനങ്ങൾ ഞങ്ങൾ നോക്കും.

1) ഒരു സ്‌ട്രിംഗിന്റെ ദൈർഘ്യം (സ്ട്രിംഗ്) നിർണ്ണയിക്കുന്നതിനുള്ള ഫംഗ്‌ഷൻ, ട്രെയിലിംഗ് സ്‌പെയ്‌സുകൾ ഉൾപ്പെടെ സ്‌ട്രിംഗിലെ പ്രതീകങ്ങളുടെ എണ്ണം നൽകുന്നു.

ഡ്യുവലിൽ നിന്ന് നീളം (‘സ്ട്രിംഗ്’) തിരഞ്ഞെടുക്കുക മൂല്യം 7 നൽകും.

2) ക്യാരക്ടർ കേസ് കൺവേർഷൻ ഫംഗ്‌ഷനുകൾ UPPER(string), LOWER(string), INITCAP(string). പ്രതീകങ്ങളെ വലിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യാൻ, UPPER() ഫംഗ്ഷൻ ഉപയോഗിക്കുക.

ഡ്യുവലിൽ നിന്ന് മുകളിൽ ('സ്ട്രിംഗ്') തിരഞ്ഞെടുക്കുക എന്നത് STRING തിരികെ നൽകും.

ഒരു സ്ട്രിംഗിന്റെ പ്രതീകങ്ങൾ ചെറിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യേണ്ടത് ആവശ്യമാണെങ്കിൽ, LOWER() ഫംഗ്ഷൻ ഉപയോഗിക്കുക.

ഡ്യുവലിൽ നിന്ന് താഴത്തെ ('സ്ട്രിംഗ') തിരഞ്ഞെടുക്കുക സ്ട്രിംഗ് തിരികെ നൽകും.

INITCAP ഫംഗ്‌ഷൻ ഒരു വാക്കിന്റെ എല്ലാ ആദ്യ പ്രതീകങ്ങളെയും വലിയക്ഷരത്തിലേക്കും മറ്റെല്ലാ പ്രതീകങ്ങളെയും ചെറിയക്ഷരത്തിലേക്കും പരിവർത്തനം ചെയ്യുന്നു, വേർഡ് സെപ്പറേറ്റർ പ്രതീകം ഒരു സ്‌പെയ്‌സ് ആണെങ്കിൽ.

ഡ്യുവലിൽ നിന്ന് INITCAP('string1 string2') തിരഞ്ഞെടുക്കുക String1 String2 നൽകും.

3) LTRIM(സ്ട്രിംഗ്), RTRIM(സ്ട്രിംഗ്), TRIM(സ്ട്രിംഗ്) ലീഡിംഗ്, ട്രെയിലിംഗ് സ്പേസുകൾ ട്രിം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ. അതനുസരിച്ച്, ആദ്യ ഫംഗ്ഷൻ ലൈനിലെ എല്ലാ മുൻനിര സ്പെയ്സുകളും, രണ്ടാമത്തേത് - എല്ലാ ട്രെയിലിംഗ് സ്പെയ്സുകളും, മൂന്നാമത്തേത് - എല്ലാ ലീഡിംഗ്, ട്രെയിലിംഗ് സ്പേസുകളും ട്രിം ചെയ്യുന്നു.

DUAL-ൽ നിന്ന് LTRIM (‘str1’) തിരഞ്ഞെടുക്കുക, str1 സ്ട്രിംഗ് തിരികെ നൽകും,
DUAL-ൽ നിന്ന് RTRIM (‘str2’) തിരഞ്ഞെടുക്കുക, സ്‌ട്രിംഗ് str2 തിരികെ നൽകും,
ഡ്യുവലിൽ നിന്ന് TRIM (‘ str3 ’) തിരഞ്ഞെടുക്കുക എന്നത് സ്‌ട്രിംഗ് str3 തിരികെ നൽകും.

4) ഒരു സ്ട്രിംഗിന്റെ ഭാഗം മറ്റൊരു സ്ട്രിംഗ് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നതിനുള്ള പ്രവർത്തനം (ഒറിജിനൽ_സ്ട്രിംഗ്, റീപ്ലേസ്ഡ്_സബ്‌സ്ട്രിംഗ്, റീപ്ലേസിംഗ്_സബ്‌സ്ട്രിംഗ്). കൂടുതൽ വ്യക്തതയ്ക്കായി, ഒരു പട്ടികയിലെ ഒരു നിശ്ചിത ടെക്സ്റ്റ് ഫീൽഡിൽ ഒരു നമ്പർ സംഭരിച്ചിരിക്കുന്ന ഒരു ഉദാഹരണം നോക്കാം. മാത്രമല്ല, ചില ഫീൽഡുകളിലെ പൂർണ്ണസംഖ്യയും ഫ്രാക്ഷണൽ ഭാഗങ്ങളും തമ്മിലുള്ള സെപ്പറേറ്റർ പ്രതീകം "." ആണ്, കൂടുതൽ ഡാറ്റ പ്രോസസ്സിംഗിനായി നമുക്ക് ഇത് എല്ലാ ഫീൽഡുകളിലും "" ആയിരിക്കണം. ഇത് ചെയ്യുന്നതിന്, ഞങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ REPLACE ഫംഗ്ഷൻ ഉപയോഗിക്കും. മാറ്റിസ്ഥാപിക്കുക(ഫീൽഡ്1, '.', ',') കൂടാതെ എല്ലാം "." ഫീൽഡ് ഫീൽഡിൽ "" എന്ന ചിഹ്നം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കും.

REPLACE തിരഞ്ഞെടുക്കുക('My_string','_','@') DUAL എന്നതിൽ നിന്ന് My@string എന്ന സ്ട്രിംഗ് തിരികെ നൽകും.

5) മറ്റ് ഡാറ്റ തരങ്ങളിലേക്ക് ഡാറ്റ പരിവർത്തനം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ. TO_CHAR(നമ്പർ) ഒരു സംഖ്യയെ ടെക്‌സ്‌റ്റിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു. TO_NUMBER(സ്ട്രിംഗ്) ടെക്‌സ്‌റ്റ് ഒരു സംഖ്യയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു. TO_DATE(string, date_format) ഒരു സ്ട്രിംഗ് ഒരു നിർദ്ദിഷ്ട തീയതി ഫോർമാറ്റിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു.

ഡ്യുവലിൽ നിന്ന് TO_CHAR(123) തിരഞ്ഞെടുക്കുക, വരി 123 നൽകും,
TO_NUMBER('12345') എന്നതിൽ നിന്ന് ഡ്യുവലിൽ നിന്ന് 12345 എന്ന നമ്പർ നൽകും,
തിരഞ്ഞെടുക്കുക TO_DATE('01.01.2010','dd.mon.yyyy') DUAL-ൽ നിന്ന് 01.JAN.2010 തീയതി നൽകും.

6) INSTR (source_string, substring, character_number) ഒരു സ്‌ട്രിംഗിൽ ഒരു സബ്‌സ്‌ട്രിംഗിന്റെ സംഭവം നിർണ്ണയിക്കുന്നതിനുള്ള പ്രവർത്തനം. തിരഞ്ഞ സബ്‌സ്‌ട്രിംഗ് ആരംഭിക്കുന്ന സോഴ്‌സ് സ്‌ട്രിംഗിലെ പ്രതീകത്തിന്റെ എണ്ണം നിർണ്ണയിക്കാൻ ഈ ഫംഗ്‌ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു (ഒന്ന് ഉണ്ടെങ്കിൽ). അല്ലെങ്കിൽ, 0 തിരികെ നൽകും. ഉദാഹരണത്തിന്, പട്ടിക 1 ലെ എല്ലാ സ്ഥാനങ്ങളും ഞങ്ങൾ നിർണ്ണയിക്കേണ്ടതുണ്ട്, അതിന്റെ പേരിൽ സബ്‌സ്ട്രിംഗ് “മാനേജർ” ദൃശ്യമാകുന്നു. ഇനിപ്പറയുന്ന ഓപ്പറേറ്റർ ഇതിന് തികച്ചും അനുയോജ്യമാണ്

ടേബിൾ 1-ൽ നിന്ന് * തിരഞ്ഞെടുക്കുക എവിടെ ഇൻസ്ട്രുമെന്റ് (പോസ്റ്റ്, 'മാനേജർ', 1) > 0.

അതായത്, തിരഞ്ഞ സബ്‌സ്ട്രിംഗ് “മാനേജർ” കണ്ടെത്തുന്ന പട്ടിക TABLE1-ൽ നിന്നുള്ള റെക്കോർഡുകൾ മാത്രമേ SELECT സ്റ്റേറ്റ്‌മെന്റ് പ്രദർശിപ്പിക്കൂ. മാത്രമല്ല, ആദ്യ പ്രതീകത്തിൽ നിന്ന് തിരയൽ നടത്തും. മറ്റൊരു സ്ഥാനത്ത് നിന്ന് തിരയൽ നടത്തേണ്ടതുണ്ടെങ്കിൽ, തിരയൽ ആരംഭിക്കുന്നതിനുള്ള പ്രതീകത്തിന്റെ എണ്ണം മൂന്നാമത്തെ പാരാമീറ്ററിൽ സൂചിപ്പിച്ചിരിക്കുന്നു.

INSTR ('സ്മോൾ സ്ട്രിംഗ്', 'സ്ട്രിംഗ്', 1) തിരഞ്ഞെടുക്കുക ഇരട്ടയിൽ നിന്ന് മൂല്യം 7 നൽകും,
INSTR ('സ്മോൾ സ്ട്രിംഗ്', 'സ്ട്രിംഗ്', 1) തിരഞ്ഞെടുക്കുക ഇരട്ടിയിൽനിന്ന് മൂല്യം 0 നൽകും.

7) SUBSTR (source_string, starting_character_number, number_of_characters) സോഴ്‌സ് സ്‌ട്രിംഗിൽ ഒരു സബ്‌സ്‌ട്രിംഗ് തിരഞ്ഞെടുക്കുന്നതിനുള്ള പ്രവർത്തനം. നമുക്ക് ഈ ഉദാഹരണം പരിഗണിക്കാം: ഉപയോക്തൃ പട്ടിക വിലാസം പ്രദേശത്തിന്റെ പേര്, തെരുവിന്റെ പേര്, വീടിന്റെ നമ്പർ എന്നിവയുടെ രൂപത്തിൽ സംഭരിക്കുന്നു. കൂടാതെ, ഒരു പ്രദേശത്തിന്റെ പേരിൽ കർശനമായി 20 പ്രതീകങ്ങൾ അനുവദിച്ചിട്ടുണ്ടെന്ന് ഞങ്ങൾക്ക് ഉറപ്പായും അറിയാം (ഒരു പ്രദേശത്തിന്റെ പേര് 20 പ്രതീകങ്ങളിൽ കുറവാണെങ്കിൽ, ബാക്കിയുള്ളത് സ്‌പെയ്‌സുകൾ കൊണ്ട് നിറഞ്ഞിരിക്കുന്നു), ഒരു തെരുവിന്റെ പേരിനായി 30 പ്രതീകങ്ങൾ, ഇതിനായി വീടിന്റെ നമ്പർ 3 പ്രതീകങ്ങൾ. അടുത്തതായി, ഞങ്ങളുടെ പട്ടികയിൽ നിന്ന് മറ്റൊന്നിലേക്ക് എല്ലാ വിലാസങ്ങളും കൈമാറേണ്ടതുണ്ട്, അതേ സമയം, വിലാസത്തിന്റെ എല്ലാ 3 ഘടകങ്ങളും വ്യത്യസ്ത ഫീൽഡുകളിലായിരിക്കണം. വിലാസ ഘടകങ്ങൾ തിരഞ്ഞെടുക്കുന്നതിന്, SUBSTR() ഫംഗ്ഷൻ ഉപയോഗിക്കുക.

സബ്‌സ്‌ട്രി (പട്ടിക_1.വിലാസം, 1, 20) നഗരം, സബ്‌സ്‌ട്രാർ (ടേബിൾ_1. വിലാസം, 21, 30) സ്‌ട്രീറ്റ്, സബ്‌സ്‌ട്രാർ (ടേബിൾ_1. വിലാസം, 52, 3) ടേബിളിൽ നിന്ന് ടൗൺ തിരഞ്ഞെടുക്കുക

തീർച്ചയായും, ഡാറ്റ കൈമാറാൻ നിങ്ങൾ INSERT ഓപ്പറേറ്റർ ഉപയോഗിക്കേണ്ടതുണ്ട്, എന്നാൽ SUBSTR ഫംഗ്ഷന്റെ പ്രവർത്തനം മനസിലാക്കാൻ, ചർച്ച ചെയ്ത ഉദാഹരണം തികച്ചും അനുയോജ്യമാണ്.
SUBSTR തിരഞ്ഞെടുക്കുക ('My_string', 4, 3) DUAL-ൽ നിന്ന് സ്‌ട്രിംഗ് സ്‌ട്രിംഗ് തിരികെ നൽകും.

മുകളിൽ ചർച്ച ചെയ്ത പ്രവർത്തനങ്ങൾ ഇൻപുട്ട് പാരാമീറ്ററുകളിൽ ഉപയോഗിക്കാം. അതിനാൽ, ഒരു നിർദ്ദിഷ്ട ഒന്നിന് ശേഷം എല്ലാ പ്രതീകങ്ങളും തിരഞ്ഞെടുക്കണമെങ്കിൽ, INSTR ഫംഗ്‌ഷനിൽ നിന്ന് SUBSTR ഫംഗ്‌ഷനിലേക്ക് തിരഞ്ഞ പ്രതീകത്തിന്റെ എണ്ണം നമുക്ക് കൈമാറാം. ഉദാഹരണത്തിന്, "" എന്നതിന് ശേഷം സ്ഥിതി ചെയ്യുന്ന ഒരു ടേബിൾ ഫീൽഡിൽ നിന്ന് നിങ്ങൾക്ക് എല്ലാ പ്രതീകങ്ങളും കൈമാറണമെങ്കിൽ, നിങ്ങൾക്ക് ഈ നിർമ്മാണം ഉപയോഗിക്കാം.
SUBSTR(My_string, INSTR(My_string, ',', 1), LENGTH(My_string)- INSTR(My_string, ',', 1)+1) DUAL-ൽ നിന്ന് തിരഞ്ഞെടുക്കുക.
ആരംഭ പ്രതീകം നിർണ്ണയിക്കാൻ, ഞങ്ങൾ INSTR() ഫംഗ്‌ഷനെ വിളിക്കുന്നു, അത് "," എന്ന സബ്‌സ്ട്രിംഗുകളുടെ ആദ്യ സംഭവത്തിന്റെ പ്രതീക നമ്പർ നൽകും. അടുത്തതായി, സ്ട്രിംഗിന്റെ ദൈർഘ്യവും ഉപസ്‌ട്രിംഗിന്റെ ആദ്യ സംഭവത്തിന്റെ എണ്ണവും തമ്മിലുള്ള വ്യത്യാസമായി സ്ട്രിംഗിന്റെ അവസാനം വരെയുള്ള പ്രതീകങ്ങളുടെ എണ്ണം ഞങ്ങൾ നിർവ്വചിക്കുന്നു.

8) പ്രതീക കോഡ് നിർണ്ണയിക്കാൻ, ASCII(സ്ട്രിംഗ്) ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു, അത് സ്ട്രിംഗിന്റെ 1 പ്രതീകത്തിന്റെ കോഡ് നൽകുന്നു. ഉദാഹരണത്തിന്

ഡ്യുവലിൽ നിന്ന് ASCII(W) തിരഞ്ഞെടുക്കുക, മൂല്യം 87 നൽകും.

9) ഒരു പ്രതീക കോഡ് ഒരു CHR (നമ്പർ) പ്രതീകമാക്കി മാറ്റുന്നതിനുള്ള വിപരീത പ്രവർത്തനം.

ഡ്യുവലിൽ നിന്ന് CHR(87) തിരഞ്ഞെടുക്കുക എന്നത് W എന്ന പ്രതീകം നൽകും.

ഒറാക്കിളിൽ നമ്പറുകളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ.

ഒറാക്കിൾ ഡിബിഎംഎസിന് നമ്പറുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ നിരവധി പ്രവർത്തനങ്ങൾ ഉണ്ട്. പവർ പവർ(), റൗണ്ടിംഗ് റൌണ്ട്() മുതലായവയിലേക്ക് ഒരു നമ്പർ ഉയർത്തുന്നതിനുള്ള ഫംഗ്ഷനുകൾ ഇതിൽ ഉൾപ്പെടുന്നു.

1) എബിഎസ്(നമ്പർ) ഫംഗ്‌ഷൻ ആർഗ്യുമെന്റിന്റെ കേവല മൂല്യം നൽകുന്നു.
ഡ്യുവലിൽ നിന്ന് എബിഎസ് (-3) തിരഞ്ഞെടുക്കുക, മൂല്യം 3 നൽകും.

2) CEIL(നമ്പർ) ഫംഗ്‌ഷൻ പാസാക്കിയ പരാമീറ്ററിനേക്കാൾ വലുതോ തുല്യമോ ആയ ഏറ്റവും ചെറിയ പൂർണ്ണസംഖ്യ നൽകുന്നു.
ഡ്യുവലിൽ നിന്ന് CEIL(4.5) തിരഞ്ഞെടുക്കുക, മൂല്യം 5 നൽകും.

3) FLOOR(നമ്പർ) ഫംഗ്‌ഷൻ പാസാക്കിയ പരാമീറ്ററിനേക്കാൾ കുറവോ തുല്യമോ ആയ ഏറ്റവും വലിയ പൂർണ്ണസംഖ്യ നൽകുന്നു.
ഡ്യുവലിൽ നിന്ന് ഫ്ലോർ (3.8) തിരഞ്ഞെടുക്കുക, മൂല്യം 3 നൽകും.

4) MOD(number_1, number_2) ഫംഗ്‌ഷൻ ആദ്യ പാരാമീറ്ററിന്റെ വിഭജനത്തിന്റെ ബാക്കി ഭാഗം രണ്ടാമത്തേത് നൽകുന്നു.
DUAL ൽ നിന്ന് MOD(5, 3) തിരഞ്ഞെടുക്കുക മൂല്യം 2 നൽകും. ശ്രദ്ധിക്കുക. രണ്ടാമത്തെ പാരാമീറ്റർ 0 ആണെങ്കിൽ, ഫംഗ്ഷൻ ആദ്യ പാരാമീറ്റർ നൽകുന്നു.

5) റൗണ്ടിംഗ് ഫംഗ്‌ഷൻ ROUND(number_1, number_2). രണ്ടാമത്തെ പാരാമീറ്ററിൽ പാസ്സാക്കിയ അക്കങ്ങളുടെ എണ്ണത്തിലേക്ക് കടന്ന ആദ്യ പാരാമീറ്റർ റൗണ്ട് ചെയ്യുന്നു. രണ്ടാമത്തെ പാരാമീറ്റർ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, അത് 0 ന് തുല്യമായി എടുക്കുന്നു, അതായത്, പൂർണ്ണസംഖ്യ മൂല്യത്തിലേക്ക് റൗണ്ടിംഗ് നടത്തുന്നു. ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് റൗണ്ട് (101.34) തിരഞ്ഞെടുക്കുക, മൂല്യം 101 നൽകും,
ഡ്യുവലിൽ നിന്ന് റൗണ്ട് തിരഞ്ഞെടുക്കുക(100.1268, 2) മൂല്യം 100.13 നൽകും
ഡ്യുവലിൽ നിന്ന് റൗണ്ട് (1234000.3254, -2) തിരഞ്ഞെടുക്കുക, മൂല്യം 1234000 നൽകും,
ഇരട്ടയിൽ നിന്ന് റൗണ്ട് (-100.122, 2) തിരഞ്ഞെടുക്കുക -100.12 തിരികെ നൽകും.

6) മൂല്യം വെട്ടിച്ചുരുക്കൽ പ്രവർത്തനം TRUNC(number_1, number_2). രണ്ടാമത്തെ പാരാമീറ്ററിൽ വ്യക്തമാക്കിയ ദശാംശ സ്ഥാനങ്ങളുടെ എണ്ണത്തിലേക്ക് ചുരുക്കിയ ആദ്യ പാരാമീറ്ററിന്റെ മൂല്യം നൽകുന്നു. ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് TRUNC (150.58) തിരഞ്ഞെടുക്കുക, മൂല്യം 150 നൽകും
TRUNC (235.4587, 2) തിരഞ്ഞെടുക്കുക ഇരട്ടിയിൽനിന്ന് 235.45 തിരികെ നൽകും
ഡ്യുവലിൽ നിന്ന് TRUNC (101.23, -1) തിരഞ്ഞെടുക്കുക, മൂല്യം 100 നൽകും

7) ഒറാക്കിൾ DBMS-ന് SIN(നമ്പർ), COS(നമ്പർ), TAN(നമ്പർ), അവയുടെ വിപരീതങ്ങളായ ACOS(നമ്പർ), ASIN(നമ്പർ), ATAN(നമ്പർ) എന്നിങ്ങനെ നിരവധി ത്രികോണമിതി പ്രവർത്തനങ്ങളുണ്ട്. അവർ പേരിന് അനുയോജ്യമായ ത്രികോണമിതി ഫംഗ്ഷന്റെ മൂല്യം നൽകുന്നു. ഡയറക്ട് ഫംഗ്ഷനുകൾക്ക്, പരാമീറ്റർ റേഡിയനുകളിലെ ആംഗിൾ മൂല്യവും വിപരീത ഫംഗ്ഷനുകൾക്ക് ഫംഗ്ഷന്റെ മൂല്യവുമാണ്. ഉദാഹരണങ്ങൾ
COS (0.5) തിരഞ്ഞെടുക്കുക ഇരട്ടിയിൽനിന്ന് 0.877582561890373 മൂല്യം നൽകും
DUAL ൽ നിന്ന് SIN(0.5) തിരഞ്ഞെടുക്കുക 0.479425538604203 മൂല്യം നൽകും
ഡ്യുവലിൽ നിന്ന് TAN(0.5) തിരഞ്ഞെടുക്കുക 0.546302489843791 മൂല്യം നൽകും
ഡ്യുവലിൽ നിന്ന് ACOS(0.5) തിരഞ്ഞെടുക്കുക 1.0471975511966 മൂല്യം നൽകും
ഡ്യുവലിൽ നിന്ന് ASIN(0.5) തിരഞ്ഞെടുക്കുക 0.523598775598299 തിരികെ നൽകും
ഡ്യുവലിൽ നിന്ന് ATAN(0.5) തിരഞ്ഞെടുക്കുക 0.463647609000806 മൂല്യം നൽകും

8) ഹൈപ്പർബോളിക് പ്രവർത്തനങ്ങൾ. SINH(നമ്പർ),
COSH(നമ്പർ), TANH(നമ്പർ). SINH() പാസായ പാരാമീറ്ററിന്റെ ഹൈപ്പർബോളിക് സൈൻ നൽകുന്നു, COSH() പാസാക്കിയ പാരാമീറ്ററിന്റെ ഹൈപ്പർബോളിക് കോസൈൻ നൽകുന്നു, TANH() പാസായ പാരാമീറ്ററിന്റെ ഹൈപ്പർബോളിക് ടാൻജെന്റ് നൽകുന്നു. ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് COSH(0.5) തിരഞ്ഞെടുക്കുക 1.12762596520638 മൂല്യം നൽകും
DUAL-ൽ നിന്ന് തിരഞ്ഞെടുക്കുക SINH(0.5) മൂല്യം 0.521095305493747 SELECT TANH(0.5) DUAL-ൽ നിന്ന് 0.46211715726001 മൂല്യം നൽകും

9) എക്‌സ്‌പോണൻഷ്യേഷന്റെ പ്രവർത്തനം POWER(നമ്പർ_1, നമ്പർ_2). ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് പവർ (10, 2) തിരഞ്ഞെടുക്കുക, മൂല്യം 100 നൽകും
DUAL ൽ നിന്ന് പവർ (100, -2) തിരഞ്ഞെടുക്കുക, മൂല്യം 0.0001 നൽകും

10) ലോഗരിഥമിക് പ്രവർത്തനങ്ങൾ. LN(നമ്പർ) പാസാക്കിയ പാരാമീറ്ററിന്റെ സ്വാഭാവിക ലോഗരിതം നൽകുന്നു, LOG(number_1, number_2) ആദ്യ പാരാമീറ്ററിലേക്ക് പാസ്സാക്കിയ രണ്ടാമത്തെ പാരാമീറ്ററിന്റെ ലോഗരിതം നൽകുന്നു. മാത്രമല്ല, ആദ്യ പാരാമീറ്റർ പൂജ്യത്തേക്കാൾ വലുതായിരിക്കണം കൂടാതെ 1. ഉദാഹരണങ്ങൾ
DUAL ൽ നിന്ന് LN(5) തിരഞ്ഞെടുക്കുക 1.6094379124341 മൂല്യം നൽകും
ഡ്യുവലിൽ നിന്ന് ലോഗ് തിരഞ്ഞെടുക്കുക(10, 3) 0.477121254719662 മൂല്യം നൽകും

11) സ്ക്വയർ റൂട്ട് SQRT(നമ്പർ) വേർതിരിച്ചെടുക്കുന്നതിനുള്ള പ്രവർത്തനം. ഉദാഹരണം
DUAL എന്നതിൽ നിന്ന് SQRT(4) തിരഞ്ഞെടുക്കുക എന്നത് മൂല്യം 2 നൽകും.

12) സംഖ്യ e പവർ EXP(നമ്പർ) ലേക്ക് ഉയർത്തുന്ന പ്രവർത്തനം. ഉദാഹരണം
ഡ്യുവലിൽ നിന്ന് EXP(2) തിരഞ്ഞെടുക്കുക എന്നത് 7.38905609893065 മൂല്യം നൽകും.

ഒറാക്കിൾ തീയതി പ്രവർത്തനങ്ങൾ

പ്രായോഗികമായി, തീയതികളുടെ രൂപത്തിൽ ഡാറ്റ വിശകലനം ചെയ്യുകയും അവയിൽ ചില പ്രവർത്തനങ്ങൾ നടത്തുകയും ഫോർമാറ്റ് മാറ്റുകയും ചെയ്യേണ്ടത് പലപ്പോഴും ആവശ്യമാണ്. ഈ പ്രവർത്തനങ്ങളെല്ലാം ബിൽറ്റ്-ഇൻ ഫംഗ്‌ഷനുകളായി ഇതിനകം നടപ്പിലാക്കിയിട്ടുണ്ട്. അവയിൽ ഏറ്റവും അടിസ്ഥാനപരമായത് നോക്കാം.

1) ADD_MONTHS(date, number_of_months) ആദ്യ പാരാമീറ്ററിൽ പാസാക്കിയ തീയതിയിൽ നിന്ന് രണ്ടാമത്തെ പാരാമീറ്ററിൽ വ്യക്തമാക്കിയ മാസങ്ങളുടെ എണ്ണം കൊണ്ട് വേർതിരിച്ച തീയതി നൽകുന്നു. ഉദാഹരണങ്ങൾ
ADD_MONTHS തിരഞ്ഞെടുക്കുക ('01-JAN-2010', 2) DUAL ൽ നിന്ന് '03/01/2010' തീയതി നൽകും
ADD_MONTHS ('01-JAN-2010', -3) തിരഞ്ഞെടുക്കുക ഇരട്ടിയിൽനിന്ന് '01.10.2009' തീയതി നൽകും
ADD_MONTHS തിരഞ്ഞെടുക്കുക ('30-JAN-2010', 1) DUAL-ൽ നിന്ന് '02/28/2010' തീയതി നൽകും

2) നിലവിലെ തീയതിയും സമയവും നിർണ്ണയിക്കാൻ, SYSDATE ഫംഗ്‌ഷൻ ഉപയോഗിക്കുന്നു. ഈ ഫംഗ്ഷന്റെ പ്രയോഗത്തിന്റെ വ്യാപ്തി ഒറ്റനോട്ടത്തിൽ തോന്നിയേക്കാവുന്നതിനേക്കാൾ വളരെ വിശാലമാണ്. ഒന്നാമതായി, ഇത് ഡാറ്റാബേസിലേക്കുള്ള ഡാറ്റ എൻട്രിയുടെ നിയന്ത്രണമാണ്. അവസാന പരിഷ്ക്കരണ തീയതി സംഭരിക്കുന്നതിന് പല പട്ടികകൾക്കും ഒരു പ്രത്യേക ഫീൽഡ് ഉണ്ട്. റിപ്പോർട്ടുകൾക്കായുള്ള ചില ഇൻപുട്ട് പാരാമീറ്ററുകൾ നിയന്ത്രിക്കുന്നതും വളരെ സൗകര്യപ്രദമാണ്, പ്രത്യേകിച്ചും അവ നിലവിലെ തീയതിയേക്കാൾ വലുതായിരിക്കരുത്. തീയതിയ്‌ക്ക് പുറമേ, ഈ ഫംഗ്‌ഷൻ സമയം കൃത്യമായി സെക്കൻഡിലേക്ക് നൽകുന്നു. ഉദാഹരണം
ഡ്യുവലിൽ നിന്ന് സിസ്‌ഡേറ്റ് തിരഞ്ഞെടുക്കുക '05/22/2010 14:51:20' എന്ന തീയതി നൽകും

3) നിങ്ങൾക്ക് മാസത്തിന്റെ അവസാന ദിവസം നിർണ്ണയിക്കണമെങ്കിൽ, LAST_DAY(തീയതി) ഫംഗ്ഷൻ ഇതിന് അനുയോജ്യമാണ്. ഒരു മാസത്തിൽ ശേഷിക്കുന്ന ദിവസങ്ങളുടെ എണ്ണം നിർണ്ണയിക്കാൻ ഇത് ഉപയോഗിക്കാം.
LAST_DAY(SYSDATE) - SYSDATE-ൽ നിന്ന് ഡ്യുവൽ തിരഞ്ഞെടുക്കുക.
ഈ പ്രസ്താവന നടപ്പിലാക്കുന്നതിന്റെ ഫലമായി, നിലവിലെ തീയതി മുതൽ മാസാവസാനം വരെയുള്ള ദിവസങ്ങളുടെ എണ്ണം പ്രദർശിപ്പിക്കും. ഉദാഹരണം
LAST_DAY('15-FEB-2010') ദ്വൈതത്തിൽ നിന്ന് തിരഞ്ഞെടുക്കുക, '02/28/2010' തീയതി നൽകും.

4) MONTHS_BETWEEN (date_1, date_2) തീയതികൾക്കിടയിലുള്ള മാസങ്ങളുടെ എണ്ണം നിർണ്ണയിക്കുന്നതിനുള്ള പ്രവർത്തനം. ഉദാഹരണങ്ങൾ
DUAL മുതൽ MONTHS_BETWEEN ('01-JUL-2009', '01-JAN-2010') തിരഞ്ഞെടുക്കുക -6
DUAL-ൽ നിന്ന് ('01-JUL-2009', '10-JAN-2010') മാസങ്ങൾ_ഇടയ്‌ക്ക് തിരഞ്ഞെടുക്കുക -6.29032258064516.
കുറിപ്പ്. മാസങ്ങളിലെ ദിവസങ്ങൾ ഒന്നുതന്നെയാണെങ്കിൽ, ഫംഗ്ഷൻ ഒരു പൂർണ്ണസംഖ്യ നൽകുന്നു, അല്ലാത്തപക്ഷം ഫലം ഫ്രാക്ഷണൽ ആയിരിക്കും, മാസത്തിലെ ദിവസങ്ങളുടെ എണ്ണം 31 ആയിരിക്കും.

5) NEXT_DAY(date, day_of_week) ഫംഗ്‌ഷൻ, ആദ്യ പാരാമീറ്ററിൽ പാസാക്കിയ തീയതിയിൽ നിന്ന് അടുത്ത തീയതി നിർണ്ണയിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് രണ്ടാമത്തെ പാരാമീറ്ററിൽ കടന്നുപോയ ആഴ്ചയിലെ ദിവസവുമായി യോജിക്കുന്നു. ഉദാഹരണം
നെക്സ്റ്റ്_ഡേ ('01-ജൂലൈ-2009', 'തിങ്കൾ') തിരഞ്ഞെടുക്കുക ദ്വൈതത്തിൽ നിന്ന് '07/06/2009' എന്ന തീയതി, അതായത് 2009 ജൂലൈ 1-ന് ശേഷമുള്ള അടുത്ത തിങ്കളാഴ്ച 6-ന് സംഭവിച്ചു.

6) തീയതി റൗണ്ടിംഗ് ROUND(തീയതി, ഫോർമാറ്റ്). രണ്ടാമത്തെ പാരാമീറ്റർ ഓപ്ഷണലാണ്; അത് വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, അത് 'DD' ആയി എടുക്കും, അതായത്, അടുത്ത ദിവസം വരെ റൗണ്ടിംഗ് നടത്തും. ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് റൗണ്ട് തിരഞ്ഞെടുക്കുക (സിഎസ്‌ഡേറ്റ്) '05/23/2010' തീയതി നൽകും
ഡ്യുവലിൽ നിന്ന് റൗണ്ട് തിരഞ്ഞെടുക്കുക (സിസ്റ്റേറ്റ്, മാസം) '06/01/2010' എന്ന തീയതി, മാസത്തിലെ ഏറ്റവും അടുത്തുള്ള ആദ്യ ദിവസത്തിലേക്ക് റൗണ്ട് ചെയ്യും.

7) തീയതി വെട്ടിച്ചുരുക്കൽ. TRUNC(തീയതി, ഫോർമാറ്റ്) ഫംഗ്‌ഷൻ. മുകളിൽ ചർച്ച ചെയ്തതുപോലെ, ഇതിന് രണ്ടാമത്തെ പാരാമീറ്റർ ഉണ്ടാകണമെന്നില്ല. ഈ സാഹചര്യത്തിൽ, വെട്ടിച്ചുരുക്കൽ അടുത്ത ദിവസം വരെ നടത്തും. ഉദാഹരണങ്ങൾ
ഡ്യുവലിൽ നിന്ന് TRUNC (SYSDATE) തിരഞ്ഞെടുക്കുക, തീയതി '05/22/2010' നൽകും
ഡ്യുവലിൽ നിന്ന് TRUNC (SYSDATE, 'WW') തിരഞ്ഞെടുക്കുക, തീയതി '05/01/2010' നൽകും
TRUNC തിരഞ്ഞെടുക്കുക (SYSDATE, 'Day') DUAL-ൽ നിന്ന് '05/16/2010' എന്ന തീയതി നൽകും.

ഒറാക്കിളിലെ ഡാറ്റ പരിവർത്തന പ്രവർത്തനങ്ങൾ

ഈ വിഭാഗം വിവിധ ഫോർമാറ്റുകളിലേക്ക് ഡാറ്റ പരിവർത്തനം ചെയ്യുന്നതിനുള്ള പരിഗണനയ്ക്കായി നീക്കിവച്ചിരിക്കുന്നു. പ്രായോഗികമായി, സ്ട്രിംഗ് മൂല്യങ്ങളെ അക്കങ്ങളായും തിരിച്ചും പരിഗണിക്കേണ്ട സാഹചര്യങ്ങൾ വളരെ സാധാരണമാണ്. ചെറിയ എണ്ണം ഫംഗ്ഷനുകൾ ഉണ്ടായിരുന്നിട്ടും, വളരെ സങ്കീർണ്ണമായ ആപ്ലിക്കേഷൻ പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ അവരുടെ കഴിവുകൾ പര്യാപ്തമാണ്.

1) TO_CHAR(ഡാറ്റ, ഫോർമാറ്റ്). ഒറ്റനോട്ടത്തിൽ, വാക്യഘടന വളരെ ലളിതമാണ്, എന്നാൽ രണ്ടാമത്തെ പാരാമീറ്റർ കാരണം ഡാറ്റ ഏത് ഫോർമാറ്റിലേക്ക് പരിവർത്തനം ചെയ്യണമെന്ന് നിങ്ങൾക്ക് വളരെ കൃത്യമായി വിവരിക്കാൻ കഴിയും. അതിനാൽ, നിങ്ങൾക്ക് ഒരു തീയതിയും ഒരു സംഖ്യാ മൂല്യവും ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യാൻ കഴിയും. ഒരു തീയതി ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുള്ള ഓപ്ഷൻ പരിഗണിക്കുക. ഏറ്റവും സാധാരണമായ ഫോർമാറ്റുകളുടെ മൂല്യങ്ങൾ പട്ടികയിൽ നൽകിയിരിക്കുന്നു; കൂടുതൽ പൂർണ്ണമായ വിവരങ്ങൾ സാങ്കേതിക ഡോക്യുമെന്റേഷനിൽ അടങ്ങിയിരിക്കുന്നു.

ഒരു സംഖ്യയെ ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുള്ള ഫോർമാറ്റ് മൂല്യങ്ങളുടെ പട്ടിക.

TO_CHAR തിരഞ്ഞെടുക്കുക (SYSDATE, 'D-MONTH-YY') DUAL-ൽ നിന്ന് '7-MAY -10' എന്ന സ്‌ട്രിംഗ് നൽകും
TO_CHAR തിരഞ്ഞെടുക്കുക (SYSDATE, 'DDD-MM-YYYY') DUAL-ൽ നിന്ന് '142-05-2010' സ്‌ട്രിംഗ് നൽകും
TO_CHAR തിരഞ്ഞെടുക്കുക (SYSDATE, 'Q-D-MM-YYY') ദ്വിവാളിൽ നിന്ന് '2-7-05-010' സ്‌ട്രിംഗ് നൽകും
TO_CHAR(1050, '9.99EEEE) ഡ്യൂവൽ എന്നതിൽ നിന്ന് തിരഞ്ഞെടുക്കുക '1.050E+03' എന്ന സ്‌ട്രിംഗ് തിരികെ നൽകും
TO_CHAR(1400, '9999V999') ദ്വിവാളിൽ നിന്ന് തിരഞ്ഞെടുക്കുക '1400000' സ്‌ട്രിംഗ് തിരികെ നൽകും
TO_CHAR(48, 'RM') DUAL-ൽ നിന്ന് തിരഞ്ഞെടുക്കുക 'XLVIII' എന്ന സ്ട്രിംഗ് തിരികെ നൽകും

2) ഒരു സ്‌ട്രിംഗിനെ TO_DATE എന്ന തീയതിയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനം (സ്ട്രിംഗ്, ഫോർമാറ്റ്). സാധ്യമായ ഫോർമാറ്റ് മൂല്യങ്ങൾ ഇതിനകം മുകളിൽ ചർച്ച ചെയ്തിട്ടുണ്ട്, അതിനാൽ ഈ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നതിനുള്ള നിരവധി ഉദാഹരണങ്ങൾ ഞാൻ നൽകും. ഉദാഹരണങ്ങൾ
TO_DATE ('01/01/2010', 'DD.MM.YYYY') ദ്വിവാളിൽ നിന്ന് തിരഞ്ഞെടുക്കുക '01/01/2010' തീയതി നൽകും
TO_DATE('01.JAN.2010', 'DD.MON.YYYY') DUAL-ൽ നിന്ന് തിരഞ്ഞെടുക്കുക '01.01.2009' തീയതി നൽകും
TO_DATE('15-01-10', 'DD-MM-YY') DUAL-ൽ നിന്ന് '01/15/2010' എന്ന തീയതി നൽകും.

3) ഒരു സ്‌ട്രിംഗിനെ സംഖ്യാ മൂല്യമായ TO_NUMBER(സ്ട്രിംഗ്, ഫോർമാറ്റ്) ലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനം. ഏറ്റവും സാധാരണമായ ഫോർമാറ്റ് മൂല്യങ്ങൾ പട്ടികയിൽ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്, അതിനാൽ ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് ഈ ഫംഗ്ഷന്റെ ഉപയോഗം നോക്കാം. ഉദാഹരണങ്ങൾ
TO_NUMBER('100') എന്നതിൽ നിന്ന് ഡ്യൂവൽ തിരഞ്ഞെടുക്കുക, 100 എന്ന സംഖ്യ നൽകും
TO_NUMBER('0010.01', '9999D99') DUAL ൽ നിന്ന് 10.01 എന്ന സംഖ്യ നൽകും
TO_NUMBER("500,000","999G999") DUAL എന്നതിൽ നിന്ന് 500000 എന്ന സംഖ്യ നൽകും.

ലേഖനത്തിന്റെ മുമ്പത്തെ ഭാഗത്ത്, ബിൽറ്റ്-ഇൻ ഗണിത പ്രവർത്തനങ്ങൾ ഞങ്ങൾ നോക്കി. PL/SQL-ലെ ചോദ്യങ്ങളിലും പ്രോഗ്രാം കോഡിലും ഉപയോഗിക്കാവുന്ന ടെക്സ്റ്റ് വിവരങ്ങളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ ഭാഗം 5 ചർച്ച ചെയ്യും.

പ്രവർത്തനം CONCAT(str1, str2)

ഈ ഫംഗ്‌ഷൻ str1 ഉം str2 ഉം സ്ട്രിംഗുകളെ സംയോജിപ്പിക്കുന്നു. ആർഗ്യുമെന്റുകളിലൊന്ന് NULL ആണെങ്കിൽ, അത് ഒരു ശൂന്യമായ സ്ട്രിംഗായി കണക്കാക്കും. രണ്ട് ആർഗ്യുമെന്റുകളും NULL ആണെങ്കിൽ, ഫംഗ്ഷൻ NULL നൽകുന്നു.

CONCAT("ടെസ്റ്റ്", NULL) x2,

CONCAT(NULL, "ടെസ്റ്റ്") x3,

ConcAT(NULL, NULL) x4

സ്ട്രിംഗുകൾ സംയോജിപ്പിക്കാൻ, ഒറാക്കിൾ ഒരു പ്രത്യേക കോൺകാറ്റനേഷൻ ഓപ്പറേറ്ററെ പിന്തുണയ്ക്കുന്നു " ||» , CONCAT ഫംഗ്‌ഷന് സമാനമായി പ്രവർത്തിക്കുന്നു, ഉദാഹരണത്തിന്:

CONCAT തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു") x1,

"പുരോഹിതനിൽ" || "ഒരു നായ ഉണ്ടായിരുന്നു" x2

ഒരു കുറിപ്പിൽ

കോൺകാറ്റനേഷൻ ഓപ്പറേറ്റർ "||", ഇത് CONCAT ഫംഗ്‌ഷനെ വിളിക്കുന്നതിന് തുല്യവും ഗണിത പ്രവർത്തനങ്ങളിൽ ഉപയോഗിക്കുന്ന "+" ഓപ്പറേറ്ററും ആശയക്കുഴപ്പത്തിലാക്കരുത്. ഒറാക്കിളിൽ ഇവ വ്യത്യസ്ത ഓപ്പറേറ്റർമാരാണ്, എന്നാൽ ഓട്ടോമാറ്റിക് ടൈപ്പ് കാസ്റ്റിംഗ് കാരണം, സൂക്ഷ്മമായ പിശകുകൾ സാധ്യമാണ്, ഉദാഹരണത്തിന്:

"5" + "3" x1 തിരഞ്ഞെടുക്കുക

ഈ സാഹചര്യത്തിൽ, "53" എന്ന ടെക്‌സ്‌റ്റ് സ്‌ട്രിങ്ങിന് പകരം സംഖ്യാ മൂല്യം 8 നൽകുന്നു. കാരണം, Oracle "+" എന്ന ഗണിത ഓപ്പറേറ്ററെ കണ്ടെത്തുമ്പോൾ, Oracle സ്വയമേവ ആർഗ്യുമെന്റുകൾ NUMBER എന്ന് ടൈപ്പുചെയ്യാൻ ശ്രമിക്കുന്നു.

ഫംഗ്‌ഷൻ LOWER(str)

ലോവർ ഫംഗ്‌ഷൻ str-ലെ എല്ലാ പ്രതീകങ്ങളെയും ചെറിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു.

ലോവർ ("ടെക്സ്റ്റ് ഡാറ്റ") X തിരഞ്ഞെടുക്കുക

INITCAP(str) ഫംഗ്‌ഷൻ

വലിയക്ഷരത്തിലേക്ക് പരിവർത്തനം ചെയ്‌ത എല്ലാ വാക്കുകളുടെയും ആദ്യ അക്ഷരങ്ങളുള്ള സ്‌ട്രിംഗ് സ്‌ട്രിംഗ് നൽകുന്നു. റിപ്പോർട്ടുകൾ നിർമ്മിക്കുമ്പോൾ മുഴുവൻ പേര് ഫോർമാറ്റ് ചെയ്യുന്നതിന് ഫംഗ്ഷൻ സൗകര്യപ്രദമാണ്.

INITCAP ("ഇവാനോവി പെറ്റർ സിഡോറോവിച്ച്") X1 തിരഞ്ഞെടുക്കുക

പ്രവർത്തനങ്ങൾ LPAD(str,n, [,char]), RPAD(str,n, [,char])

LPAD ഫംഗ്‌ഷൻ സ്ട്രിംഗ് സ്‌ട്രിംഗ് നൽകുന്നു, ഒരു ചാർ ഉപയോഗിച്ച് ഇടത്, സ്ട്രിംഗ് നീളത്തിൽ എത്തുന്നതുവരെ എൻകഥാപാത്രങ്ങൾ. സ്ഥിരസ്ഥിതിയായി, പൂരിപ്പിക്കൽ പ്രതീകം ഒരു സ്‌പെയ്‌സാണ്, അത് വ്യക്തമാക്കിയേക്കില്ല. ഫംഗ്‌ഷനിലേക്ക് കടന്നുപോകുന്ന സ്ട്രിംഗിന്റെ ദൈർഘ്യം കൂടുതലാണെങ്കിൽ എൻ, തുടർന്ന് ഫംഗ്ഷൻ സ്ട്രിംഗ് മാറ്റമില്ലാതെ നൽകുന്നു. RPAD ഫംഗ്‌ഷൻ LPAD-ന് സമാനമാണ്, എന്നാൽ ശരിയായ പാഡിംഗ് നിർവഹിക്കുന്നു. റിപ്പോർട്ടുകൾ തയ്യാറാക്കുമ്പോൾ ടെക്സ്റ്റ് വിവരങ്ങൾ ഫോർമാറ്റ് ചെയ്യുന്നതിന് ഈ പ്രവർത്തനങ്ങൾ വളരെ സൗകര്യപ്രദമാണ്.

LPAD ("ടെസ്റ്റ്", 20) x1 തിരഞ്ഞെടുക്കുക,

RPAD("ടെസ്റ്റ്", 20) x2,

LPAD("ടെസ്റ്റ്", 20, "_") x3

ഫംഗ്‌ഷൻ REPLACE(str, search_str, [,replace_str])

REPLACE ഫംഗ്‌ഷൻ string str-ൽ ഒരു search_str പാറ്റേണിനായി തിരയുന്നു, കൂടാതെ ഓരോ സംഭവങ്ങളെയും മാറ്റി പകരം വയ്ക്കുന്നു. സ്ഥിരസ്ഥിതിയായി, replace_str എന്നത് ശൂന്യമായ സ്ട്രിംഗ് ആണ്, അതിനാൽ രണ്ട് ആർഗ്യുമെന്റുകൾ ഉപയോഗിച്ച് REPLACE എന്ന് വിളിക്കുന്നത് കണ്ടെത്തിയ എല്ലാ സംഭവങ്ങളും നീക്കം ചെയ്യുന്നു. ഒരു സബ്‌സ്‌ട്രിംഗിനായുള്ള തിരയൽ കേസ് സെൻസിറ്റീവ് ആണ്.

മാറ്റിസ്ഥാപിക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ", "പൂച്ച") x1,

മാറ്റിസ്ഥാപിക്കുക("പുരോഹിതന് ഒരു ദുഷ്ടനായ നായ ഉണ്ടായിരുന്നു", "തിന്മ") x2,

മാറ്റിസ്ഥാപിക്കുക("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ", "പൂച്ച") x3

ഫംഗ്‌ഷൻ വിവർത്തനം ചെയ്യുക(str, from_mask, to_mask)

TRANSLATE ഫംഗ്‌ഷൻ സ്‌ട്രിംഗ് സ്‌ട്രിംഗ് പാഴ്‌സ് ചെയ്യുകയും from_mask സ്‌ട്രിംഗിൽ ദൃശ്യമാകുന്ന എല്ലാ പ്രതീകങ്ങളെയും to_mask-ൽ നിന്നുള്ള അനുബന്ധ പ്രതീകങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു. ഫംഗ്‌ഷൻ ശരിയായി പ്രവർത്തിക്കുന്നതിന്, from_mask, to_mask സ്‌ട്രിംഗുകൾ ഒരേ നീളമായിരിക്കണം, അല്ലെങ്കിൽ from_mask സ്ട്രിംഗ് to_mask-നേക്കാൾ നീളമുള്ളതായിരിക്കണം. from_mask to_mask-നേക്കാൾ ദൈർഘ്യമേറിയതാണെങ്കിൽ, സ്‌ട്രിംഗ് str പ്രോസസ്സ് ചെയ്യുമ്പോൾ, from_mask പ്രതീകങ്ങളിലൊന്നുമായി പൊരുത്തപ്പെടുന്ന പ്രതീകങ്ങൾ കണ്ടെത്തുകയും അതേ സമയം to_mask-ൽ അവയ്‌ക്ക് പൊരുത്തമില്ലെങ്കിൽ, അത്തരം പ്രതീകങ്ങൾ string str-ൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. നിങ്ങൾ from_mask അല്ലെങ്കിൽ to_mask NULL ന് തുല്യമായാൽ, ഫംഗ്‌ഷൻ NULL തിരികെ നൽകും. താരതമ്യം കേസ് സെൻസിറ്റീവ് ആണ്.

വിവർത്തനം തിരഞ്ഞെടുക്കുക("ടെസ്റ്റ് 12345", "e2", "E!") x1,

വിവർത്തനം ചെയ്യുക("ടെസ്റ്റ് 12345", "e234", "E") x2

പ്രതീക പരിവർത്തനം അല്ലെങ്കിൽ നിരോധിത പ്രതീകങ്ങൾക്കായി തിരയുന്നതുമായി ബന്ധപ്പെട്ട നിരവധി പ്രായോഗിക പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് ഈ ഫംഗ്ഷൻ സൗകര്യപ്രദമാണ്. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു പാസ്‌വേഡ് വിശകലനം ചെയ്യുകയും അതിൽ ഒരു അക്കമെങ്കിലും ഉണ്ടോ എന്ന് കണ്ടെത്തുകയും വേണം. TRANSLATE ഉപയോഗിച്ച് ഈ പരിശോധന നടപ്പിലാക്കുന്നത് ഇതുപോലെ കാണപ്പെടുന്നു:

വിവർത്തനം ചെയ്താൽ (PassWd, "0123456789", "*") = PassWd പിന്നെ

ADD_ERROR("പിശക് - പാസ്‌വേഡിൽ കുറഞ്ഞത് ഒരു അക്കമെങ്കിലും ഉണ്ടായിരിക്കണം!");

മറ്റൊരു ഉദാഹരണം: NUMBER-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനായി ഒരു നമ്പർ തയ്യാറാക്കിക്കൊണ്ടിരിക്കുകയാണ്. ഡെസിമൽ സെപ്പറേറ്ററുകൾ ",", "" എന്നിവ മാറ്റിസ്ഥാപിക്കേണ്ടത് ആവശ്യമാണ്. "" എന്നതിൽ കൂടാതെ ഇടങ്ങൾ നീക്കം ചെയ്യുക. TRANSLATE ഉപയോഗിച്ച് ഈ പ്രവർത്തനം നടപ്പിലാക്കുന്നത് ഇതുപോലെ കാണപ്പെടുന്നു:

വിവർത്തനം തിരഞ്ഞെടുക്കുക("123 455.23", "., ", "..") x1,

വിവർത്തനം ചെയ്യുക("-123 455.23", "., ", "..") x2

ഫംഗ്‌ഷൻ SUBSTR(str, m [,n])

SUBSTR ഫംഗ്‌ഷൻ, അക്ഷരത്തിൽ ആരംഭിക്കുന്ന സ്‌ട്രിംഗ് സ്‌ട്രിംഗിന്റെ ഒരു ഭാഗം നൽകുന്നു എംനീളം എൻകഥാപാത്രങ്ങൾ. ദൈർഘ്യം വ്യക്തമാക്കിയേക്കില്ല - ഈ സാഹചര്യത്തിൽ ചിഹ്നത്തിൽ നിന്നുള്ള സ്ട്രിംഗ് തിരികെ നൽകും എംവരിയുടെ അവസാനം വരെ str. പ്രതീക നമ്പറിംഗ് 1 മുതൽ ആരംഭിക്കുന്നു. നിങ്ങൾ വ്യക്തമാക്കുകയാണെങ്കിൽ എം= 0, തുടർന്ന് പകർത്തൽ ആദ്യ പ്രതീകത്തിൽ നിന്ന് ആരംഭിക്കും. ഒരു നെഗറ്റീവ് മൂല്യം വ്യക്തമാക്കുന്നു എംതുടക്കത്തിലേതിനേക്കാൾ വരിയുടെ അവസാനം മുതൽ പ്രതീകങ്ങൾ കണക്കാക്കാൻ കാരണമാകുന്നു. മൂല്യങ്ങൾ ക്രമീകരണം എംസ്ട്രിംഗ് ദൈർഘ്യത്തിന്റെ കേവല മൂല്യം കവിയുന്നത് ഫംഗ്‌ഷൻ NULL തിരികെ നൽകുന്നതിന് കാരണമാകുന്നു.

SUBSTR തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", 13) x1,

SUBSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", -6) x2,

SUBSTR("ഇത് ടെസ്റ്റ് ടെക്സ്റ്റ് ആണ്", 5, 8) x3,

SUBSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", 150) x4

വാചകം

ഫംഗ്‌ഷൻ INSTR(str, search_str [,n[,m]])

INSTR ഫംഗ്‌ഷൻ ആദ്യ പ്രതീകത്തിന്റെ സ്ഥാനം നൽകുന്നു എം string str ന്റെ th fragment, string search_str മായി പൊരുത്തപ്പെടുന്നു. സ്ട്രിംഗ് സ്‌ട്രിംഗിന്റെ nth പ്രതീകത്തിൽ നിന്നാണ് താരതമ്യം നടത്തുന്നത്; താരതമ്യം കേസ് സെൻസിറ്റീവ് ആണ്. സ്ഥിരസ്ഥിതി എൻ = എം= 1, അതായത്, വരിയുടെ തുടക്കം മുതൽ തിരയൽ നടത്തുകയും കണ്ടെത്തിയ ആദ്യ ശകലത്തിന്റെ സ്ഥാനം തിരികെ നൽകുകയും ചെയ്യുന്നു. തിരയൽ പരാജയപ്പെട്ടാൽ, ഫംഗ്ഷൻ 0 നൽകുന്നു.

INSTR തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "നായ") x1,

INSTR("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു", "പൂച്ച") x2,

INSTR("ടെക്‌സ്‌റ്റ് സെർച്ചിംഗ് തെളിയിക്കാനുള്ള ടെക്‌സ്‌റ്റാണിത്", "ടെക്‌സ്റ്റ്", 1, 2) x3,

INSTR("11111000000001", "1", 7) x4

ഒരു കുറിപ്പിൽ

ഈ ഫംഗ്ഷൻ ഉപയോഗിച്ച്, ഒറാക്കിളിലെ മറ്റെല്ലാവരുമായും, NULL മൂല്യങ്ങൾ കൈകാര്യം ചെയ്യുന്നതുമായി ബന്ധപ്പെട്ട സാധാരണ പിശകുകൾ പലപ്പോഴും സംഭവിക്കാറുണ്ട്. str=NULL ആണെങ്കിൽ, ഫംഗ്ഷൻ പൂജ്യമല്ല, NULL ആയി നൽകും! വിവിധ വ്യവസ്ഥകൾ നിർമ്മിക്കുമ്പോൾ ഇത് കണക്കിലെടുക്കണം. ഉദാഹരണത്തിന്, ഒരു PL/SQL പ്രോഗ്രാമിന്റെ ഈ ശകലം ഈ സവിശേഷത കണക്കിലെടുക്കുന്നില്ല:

INSTR(TXT_VAR, "*") = 0 ആണെങ്കിൽ

ഈ സാഹചര്യത്തിൽ, ഇങ്ങനെ എഴുതുന്നത് ശരിയായിരിക്കും:

NVL(INSTR(TXT_VAR, "*"), 0) = 0 എങ്കിൽ

ഫംഗ്‌ഷനുകൾ LENGTH(str), LENGTHB(str)

LENGTH(str) ഫംഗ്‌ഷൻ സ്‌ട്രിംഗിന്റെ ദൈർഘ്യം പ്രതീകങ്ങളിൽ നൽകുന്നു. ഒരു ശൂന്യമായ സ്‌ട്രിംഗിനും ഒരു NULL മൂല്യത്തിനും, ഫംഗ്‌ഷൻ NULL നൽകുന്നു, അതിനാൽ ഈ ഫംഗ്‌ഷനുമായി ചേർന്ന് NVL ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

നീളം തിരഞ്ഞെടുക്കുക ("പുരോഹിതന് ഒരു നായ ഉണ്ടായിരുന്നു") x1,

നീളം(നല്ല) x3,

NVL(ദൈർഘ്യം(""), 0) x4

ഫംഗ്‌ഷൻ CHR(n)

ഒരു പ്രതീകം അതിന്റെ കോഡ് ഉപയോഗിച്ച് നൽകുന്നു.

CHR(64) x1 തിരഞ്ഞെടുക്കുക