Readme.ge Blog

FB image FB image

substr_count pl/sql-ში

ავტორი: ალექსანდრე თარიღი: Friday, April 24th, 2009

ვაგრძელებ pl/sql-ში user defined ფუნქციების შექმნას. ამ პოსტში შემოგთავაზებთ substr_count ფუნქციას, რომელიც გვაქვს php-ში.
შემდეგ ფუნქციას გადაეცემა 3 პარამეტრი
substr_count ( სტრინგი რაშიც ვითვლით, სტრინგი რასაც ვითვლით, [case Sensitive = case ]).
მეორე პარამეტრი შეგვიძლია გადავცეთ როგორ 1 ასევე რამდენიმე სიმბოლო ერთად.
ხოლო მესამე პარამეტრით გადავცემთ ფუნქცია იყოს თუ არა კეის სენსიტივი. დეფაულტ მნიშვნელობად მას აქვს ‘case’ რომელიც ნიშნავს რომ გაითვალისწინოს კეის სენსიტივი.
ფუნქცია აბრუნებს რიცხვით მნიშვნელობას საძიებო სტრინგის რაოდენობით საძებნ სტრინგში.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE OR REPLACE FUNCTION SUBSTR_COUNT(V_STR    IN VARCHAR2,
                                        V_SYMBOL IN VARCHAR2,
                                        V_SENS   IN VARCHAR2 := 'case')
  RETURN NUMBER IS
  RESULT    NUMBER;
  VN_STR    VARCHAR2(32767);
  VN_SYMBOL VARCHAR2(32767);
BEGIN

  IF (V_SENS = 'nocase') THEN
    VN_STR    := LOWER(V_STR);
    VN_SYMBOL := LOWER(V_SYMBOL);
  ELSE
    VN_STR    := V_STR;
    VN_SYMBOL := V_SYMBOL;
  END IF;

  RESULT := (LENGTH(VN_STR) - LENGTH(REPLACE(VN_STR, VN_SYMBOL))) /
            LENGTH(VN_SYMBOL);
  IF (RESULT < 0) THEN
    RETURN 0;
  ELSE
    RETURN RESULT;
  END IF;
END SUBSTR_COUNT;

მაგალითი –

1
2
3
4
5
6
7
8
CREATE TABLE substr_count_sample (
anyCol VARCHAR2(200)
);
INSERT INTO substr_count_sample  VALUES ('1254|ass|aok');
INSERT INTO substr_count_sample  VALUES ('foodokigdae');
INSERT INTO substr_count_sample  VALUES ('armagedoni');
INSERT INTO substr_count_sample  VALUES ('5.326');
INSERT INTO substr_count_sample  VALUES ('okdoginOkdi');
1
2
SELECT anycol, substr_count(anycol,'ok') with_case, substr_count(anycol,'ok','nocase') with_nocase
FROM substr_count_sample;

–შედეგი –

ეგ არის და ეგ 🙂
სტრინგში სიმბოლოების წარმატებულ დათვლას გისურვებთ 🙂

კატეგორიებში: ORACLE, ORACLE - PHP, SQL - PL/SQL. |

2 გამოხმაურება “substr_count pl/sql-ში”-ზე

  1. dato:

    gamarjoba.. rogorc vxvdebi es saiti ragac dzravze awyobili minda eseti blog saiti magram dawera ar minda da tu martla dzravzea dawerili mash ikneb mitxrat ra rzravia dzalian madlobeli dagrchebit. didi madloba winaswar

  2. ალექსანდრე:

    გაგიმარჯოს 🙂
    კი ეს საიტი აწყობილია ძრავზე და მიყენებულია თემა(სკინი) რომელიც ძალიან ბევრნაირია. ძრავი არის ვორდპრესის და შეგიძლია გადმოწერო აქედან – http://wordpress.org/ და უფასოა 🙂

დატოვე კომენტარი

anycol with_case with_nocase
1254assaok 1 1
foodokide 1 1
armagedoni 0 0
534.323 0 0
okdoginOkdi 1 2