Berikut ini adalah contoh untuk menghitung jumlah kata dalam kalimat:

select nama, LENGTH(nama) - LENGTH(REPLACE(nama,' ')) +1 jumlah_kata from t0;

NAMA                                                                JUMLAH_KATA
-------------------------------------------------- -----------
Indra Armansyah                                                   2
Nunung Hastina Hutami                                           3
Muhammad Akbar Asefi Putra Armansyah                    5

Semoga membantu.

Salam,

Indra Armansyah
[EMAIL PROTECTED]


  ----- Original Message ----- 
  From: wawan mulyawan 
  To: [email protected] 
  Sent: Thursday, February 22, 2007 3:55 PM
  Subject: RE: [indo-oracle] memisahkan isi tabel


  Wuih.. canggih juga nih pak indra.
  Mungkin dengan seperti itu bisa dibuatkan function yang mendeteksi
  berapa bagian suku kata yang mengandung didalamnya 
  dan ketika terdapat lebih dari 3 suku maka biasanya awal dan akhir
  menjadi first name dan last name. dan yang lainnya menjadi middle name
  betul begitu pak imam. ?

  -----Original Message-----
  From: [email protected] [mailto:[EMAIL PROTECTED]
  On Behalf Of Indra Armansyah
  Sent: Thursday, February 22, 2007 3:21 PM
  To: [email protected]
  Subject: Re: [indo-oracle] memisahkan isi tabel


  Cara alternatif apabila data nama tidak semuanya mengandung 3 kata....
  Dengan menggunakan fungsi berikut anda dapat menentukan posisi string ke
  berapa dalam kalimat yang akan anda ambil.

  Contoh:
  select getwordnum('Muhammad Akbar Asefi Putra Armansyah',2,' ') as hasil
  from dual;
  HASIL
  ----------------------------------------------------------
  Akbar

  select getwordnum('Muhammad Akbar Asefi Putra Armansyah',3,' ') as hasil
  from dual;
  HASIL
  ----------------------------------------------------------
  Asefi

  Berikut contoh lengkap untuk kasus anda....

  create table t0 (nama varchar2(50));

  create table t1 (nama_depan varchar2(20), nama_tengah varchar2(15),
  nama_belakang varchar2(15));

  insert into t0 values ('Indra Armansyah');

  insert into t0 values ('Nunung Hastina Hutami');

  insert into t0 values ('Muhammad Akbar Asefi Putra Armansyah');

  create or replace function GETWORDNUM
  (cString nvarchar2, nIndex smallint, cDelimiters nvarchar2 default
  nchr(32) || nchr(9) || nchr(10) || nchr(13) )
  return nvarchar2
  deterministic
  as
  i smallint := 1;
  k smallint := 1;
  l smallint := 0;
  j smallint;
  lmin smallint;
  nEndString smallint := 1 + length(cString);
  LenDelimiters smallint;
  cWord nvarchar2(4000) := '';
  begin 
  if cString is not null then
  if cDelimiters is not null then
  LenDelimiters := length(cDelimiters);
  <<search>> while i <= nIndex loop
  while instr(cDelimiters, substr(cString, k, 1)) > 0 and nEndString > k
  loop
  k := k + 1; 
  end loop;
  exit when k >= nEndString;
  j := 1; 
  lmin := nEndString;
  while j <= LenDelimiters loop
  l := instr(cString, substr(cDelimiters, j, 1), k); 
  j := j + 1;
  if l > 0 and lmin > l then 
  lmin := l;
  end if;
  end loop;
  if i = nIndex then
  cWord := substr(cString, k, lmin - k);
  exit;
  end if; 
  k := lmin + 1;
  exit when k >= nEndString;
  i := i + 1;
  end loop search;
  else 
  if nIndex = 1 then
  cWord := cString;
  end if; 
  end if; 
  end if; 
  return cWord;
  end GETWORDNUM;
  /

  select * from t0;

  NAMA
  --------------------------------------------------
  Indra Armansyah
  Nunung Hastina Hutami
  Muhammad Akbar Asefi Putra Armansyah

  insert into t1 select getwordnum(nama,1,' '), getwordnum(nama,2,' '),
  getwordnum(nama,3,' ') from t0;

  select * from t1;

  NAMA_DEPAN NAMA_TENGAH NAMA_BELAKANG
  -------------------- --------------- ---------------
  Indra Armansyah
  Nunung Hastina Hutami
  Muhammad Akbar Asefi

  Semoga membantu.

  Salam,

  Indra Armansyah
  [EMAIL PROTECTED] <mailto:indra%40hastinapura.com> com

  ----- Original Message ----- 
  From: Imam Nursianto 
  To: indo-oracle@ <mailto:indo-oracle%40yahoogroups.com> yahoogroups.com 
  Sent: Thursday, February 22, 2007 9:14 AM
  Subject: [indo-oracle] memisahkan isi tabel

  mohon pencerahan dunk,
  Saya punya table yang ada kolom nama, kemudian
  isi kolom nama tersebut ingin saya pecah dalam 3 column di table yang
  berbeda gimana caranya yaa....
  misalnya : 

  table :
  A 

  B
  column :
  nama 
  ----> nama_depan, nama_tengah, nama_belakang
  agus nur rahman
  --->
  agus 
  , 
  nur 
  , rahman

  Terima Kasih,

  Imam Nursianto

  ----------------------------------------------------------

  No virus found in this incoming message.
  Checked by AVG Free Edition.
  Version: 7.0.412 / Virus Database: 268.18.3/694 - Release Date:
  2/20/2007

  [Non-text portions of this message have been removed]


  [Non-text portions of this message have been removed]



   


------------------------------------------------------------------------------


  No virus found in this incoming message.
  Checked by AVG Free Edition.
  Version: 7.0.412 / Virus Database: 268.18.3/694 - Release Date: 2/20/2007


[Non-text portions of this message have been removed]

Kirim email ke