PL/SQL でハッシュ
使ってないとすぐ忘れるのでメモ
Oracle 7 時代に試したらダメだったことがいろいろできるようになってるようだ
PL/SQL なんて話題にする人いないから気が付かないけど、地味にいろいろ便利になってるみたい
declare type vc_hash is table of varchar2(32000) index by varchar2(32000) ; function read_hash( p_key in out varchar2 , p_hash in vc_hash ) return boolean is begin if p_hash.count = 0 then return false; end if; if p_key is null then p_key := p_hash.first; else if p_hash.next(p_key) is null then return false; end if; p_key := p_hash.next(p_key); end if; return true; end ; begin declare tmp vc_hash; key varchar2(100); begin tmp('hoge') := 'fuga'; tmp('HOGE') := 'Fuga'; tmp('hoge') := 'FUGA'; --update loop if not read_hash(key,tmp) then exit; end if; dbms_output.put_line( key || ' = ' || tmp( key ) ); end loop; end ; end ; / HOGE = Fuga hoge = FUGA