17,086
社区成员
发帖
与我相关
我的任务
分享
-- TRY IT ..
CREATE OR REPLACE PROCEDURE CONVERT_PERSONNAME IS
SURNAME VARCHAR2(200);
FIRSTNAME VARCHAR2(200);
ENTITYID NUMBER(19, 0);
TSQL VARCHAR2(500);
NUM NUMBER;
NUMCOUNT NUMBER;
CURSOR CURSORPERSON IS
SELECT A.ID FROM ENTITY_ITEM A WHERE A.ENTITY_TYPE = 10;
BEGIN
IF (CURSORPERSON%ISOPEN = FALSE) THEN
OPEN CURSORPERSON;
END IF;
LOOP
FETCH CURSORPERSON
INTO ENTITYID;
EXIT WHEN CURSORPERSON%NOTFOUND;
-- Add by mantisXF on Jan 19, 2009
BEGIN
TSQL := 'SELECT A.ATTRIBUTE_VALUE FROM ENTITY_ITEM_VALUE A WHERE A.ENTITY_ID =' ||
ENTITYID || ' AND A.ATTRIBUTE_ID = 3';
EXECUTE IMMEDIATE TSQL
INTO SURNAME;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
-- End
-- Add by mantisXF on Jan 19, 2009
BEGIN
TSQL := 'SELECT A.ATTRIBUTE_VALUE FROM ENTITY_ITEM_VALUE A WHERE A.ENTITY_ID = ' ||
ENTITYID || ' AND A.ATTRIBUTE_ID = 4';
EXECUTE IMMEDIATE TSQL
INTO FIRSTNAME;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
-- End
END LOOP;
CLOSE CURSORPERSON;
EXCEPTION
WHEN OTHERS THEN
BEGIN
DBMS_OUTPUT.PUT_LINE('Error came!!!');
END;
END CONVERT_PERSONNAME;
[Quote=引用 3 楼 tianhewulei 的回复:]
create or replace procedure CONVERT_PERSONNAME is
surname varchar2(200);
firstname varchar2(200);
entityId number(19,0);
tsql varchar2(500);
num number;
numcount number;
cursor CursorPerson is select a.id from entity_item a where a.entity_type = 10;
begin
if(CursorPerson%isopen = false) then
open CursorPerson;
end if;
loop
fetch CursorPerson into entityId;
exit when CursorPerson%notfound;
tsql := 'select a.attribute_value from entity_item_value a where a.entity_id ='|| entityId ||' and a.attribute_id = 3';
execute immediate tsql into surname;
tsql := 'select a.attribute_value from entity_item_value a where a.entity_id = '||entityId||' and a.attribute_id = 4';
execute immediate tsql into firstname;
end loop;
close CursorPerson;
exception when NO_DATA_FOUND then
begin
dbms_output.put_line('111111');
end;
end CONVERT_PERSONNAME;
--可以考虑扑获NO_DATA_FOUND异常事件
...
execute immediate tsql into entityOId;
EXCEPTION
WHEN NO_DATA_FOUND THEN
...
[Quote=引用楼主 tianhewulei 的帖子:]