はてぶ関連でメモ
まず一個目は、
はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記
そこからさらにリンクされていたのが
2008-11-27 - つれずれなるままに…
んで、解析ツールとしてIBM PageDtailerを使った例として
はてなブックマークが重い件について、Page Detailerというツールを使って調べてみる - id:HolyGrailとid:HoryGrailの区別がつかない日記
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 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 | 26 |
| 27 | 28 | 29 | 30 | 31 |
« 2008年9月 | トップページ | 2008年12月 »
まず一個目は、
はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記
そこからさらにリンクされていたのが
2008-11-27 - つれずれなるままに…
んで、解析ツールとしてIBM PageDtailerを使った例として
はてなブックマークが重い件について、Page Detailerというツールを使って調べてみる - id:HolyGrailとid:HoryGrailの区別がつかない日記
Ask Tom "how to dynamically generate cursors with..."
質問した人は、テーブル名をパラメータにして動的にupdate文を生成したいらしい。
やり方は、
CREATE OR REPLACE PROCEDURE populate_email(p_in_table_name VARCHAR2)
AS
TYPE cur_type IS REF CURSOR;
tmp_cur cur_type;
TYPE email_rec IS RECORD (
intid internetaddress.intid%TYPE,
intaddress internetaddress.intaddress%TYPE);
query varchar2(100);
tmp_rec email_rec;
BEGIN
query := 'select i.intid, i.intaddress
from internetaddress i, '||p_in_table_name ||' b
where i.intid = b.id';
OPEN tmp_cur FOR query;
LOOP
FETCH tmp_cur INTO tmp_rec;
EXIT WHEN tmp_cur%NOTFOUND;
EXECUTE IMMEDIATE
'update '||p_in_table_name ||' a
set a.ademal = substr(trim('||tmp_rec.intaddress||'),1,50)
where a.id = '||tmp_rec.intid;
END LOOP;
EXECUTE IMMEDIATE
'COMMIT';
CLOSE tmp_cur;END;
一方Tomの回答は、
execute immediate '
update (select a.ademal, substr( trim( i.intaddress ) ) intaddress
from ' || dbms_assert.sql_object_name( p_in_table_name ) || ' a,
internetaddress i
where i.intid = a.id )
set ademal = intaddress';
最近のコメント