fzbh.sql 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. create or replace PROCEDURE FZBH AS
  2. BEGIN
  3. DECLARE
  4. strsql VARCHAR2(500); --执行语句
  5. FZCSBH VARCHAR2(100); --附证场所编号
  6. FZBH VARCHAR2(2000); --附证编号
  7. FZ_ID NUMBER; --附证ID
  8. CURSOR CUR_FZ IS
  9. SELECT ID FROM T_YJPT_GKWXHWZYFZBLHHZ WHERE RECORD_STATUS<>9; --所有的附证
  10. CURSOR CUR_FZCS(FZID IN NUMBER) IS
  11. SELECT DISTINCT FZCSBH FROM T_YJPT_GKWXHWZYFZBL_FZ WHERE RECORD_STATUS<>9 AND FZSQ=FZID AND FZCSBH IS NOT NULL ORDER BY FZCSBH; --所有的附证场所
  12. BEGIN
  13. --拼接附证场所编号
  14. OPEN CUR_FZ;
  15. LOOP
  16. FETCH CUR_FZ
  17. INTO FZ_ID;
  18. EXIT WHEN CUR_FZ%NOTFOUND;
  19. FZBH :='';
  20. OPEN CUR_FZCS(FZ_ID);
  21. LOOP
  22. FETCH CUR_FZCS
  23. INTO FZCSBH;
  24. EXIT WHEN CUR_FZCS%NOTFOUND;
  25. --附证编号是否存在
  26. FZBH := FZBH||chr(10)||FZCSBH;
  27. END LOOP;
  28. CLOSE CUR_FZCS;
  29. IF LENGTH(FZBH)>0 THEN
  30. FZBH := SUBSTR(FZBH,2,LENGTH(FZBH)-1);
  31. END IF;
  32. --更新附证编号
  33. strsql := 'UPDATE T_YJPT_GKWXHWZYFZBLHHZ SET BH = :1 WHERE ID = :2';
  34. --DBMS_OUTPUT.PUT_LINE(strsql);
  35. EXECUTE IMMEDIATE strsql USING FZBH,FZ_ID;
  36. COMMIT;
  37. END LOOP;
  38. CLOSE CUR_FZ;
  39. END;
  40. END FZBH;