*** ニーナェ、ヒDDLハク、 ッケヤ、ケ、セケ遉マ。「・。シ・、ヌ、マ、ハ、ッ・キ・ケ・ニ・犧「クツ、ャノャヘラ、ヌ、ケ。ハホ罍ァGRANT CREATE TABLE TO USER ;。ヒ
BEGIN
/****** SELECT
******************************************************************/
S_SQL := '';
-- SQLコタョ
S_SQL := S_SQL
|| 'SELECT ZITU.CNT CNT1 ,SAVE.CNT CNT2 ';
S_SQL := S_SQL
|| ' FROM (SELECT COUNT(*) CNT FROM ALL_TAB_COLUMNS WHERE TABLE_NAME
= ''XXX'' ) ZITU'; -- シツノス
S_SQL := S_SQL
|| ' , (SELECT COUNT(*) CNT FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = ''SAVE_XXX'' ) SAVE'; -- ・サ。シ・ヨノス
S_SQL := REPLACE(S_SQL,'XXX',i_TABLE);
-- ハクサイ"XXX"、 _TABLE、ヌテヨ、ュエケ、ィ、゛、ケ
-- DBMS_OUTPUT.PUT_LINE('S_SQL
= ' || S_SQL );
-- DEBUG
S_CUR := DBMS_SQL.OPEN_CURSOR;
-- ・ォ。シ・ス・・ェ。シ・ラ・
DBMS_SQL.PARSE(S_CUR,S_SQL,DBMS_SQL.V7);
-- 」モ」ム」フハク、ホ・サ・テ・ネ。ハ。ヨDBMS_SQL.V7。ラ、マ、ェコヒ。。ヒ
DBMS_SQL.DEFINE_COLUMN(S_CUR,1,CNT1);
-- ・ォ・鬣狢クタ 。ハNUMBERキソーハウー、ホキソ、ヌ、マキ蠢 リト遙ヒ
DBMS_SQL.DEFINE_COLUMN(S_CUR,2,CNT2);
-- ・ォ・鬣狢クタ
S_EXE := DBMS_SQL.EXECUTE(S_CUR);
-- ・ォ。シ・ス・シツケヤ 。ハ」モ」ム」フハク、ホイ マキイフ、ャS_EXE、ヒニ 。ヒ
IF DBMS_SQL.FETCH_ROWS(S_CUR)
< 1 THEN
-- ・ユ・ァ・テ・チ
nRET := 9;
END IF;
DBMS_SQL.COLUMN_VALUE(S_CUR,1,CNT1);
-- 」アネヨフワ、ホ・ヌ。シ・ソ、 ヨCNT1。ラ、ヒシ隍スミ、ケ
DBMS_SQL.COLUMN_VALUE(S_CUR,2,CNT2);
-- 」イネヨフワ、ホ・ヌ。シ・ソ、 ヨCNT2。ラ、ヒシ隍スミ、ケ
-- DBMS_OUTPUT.PUT_LINE('CNT1
= ' || CNT1 );
-- DEBUG
-- DBMS_OUTPUT.PUT_LINE('CNT2
= ' || CNT2 );
-- DEBUG
DBMS_SQL.CLOSE_CURSOR(S_CUR);
-- ・ォ。シ・ス・・ッ・。シ・コ
/****** UPDATE ******************************************************************/
IF CNT1 = CNT2
THEN
S_SQL := 'UPDATE SAMPLE_TABLE SET ERR_KBN = ''0'' WHERE TABLE_NAME = ''XXX''';
ELSE
S_SQL := 'UPDATE SAMPLE_TABLE SET ERR_KBN = ''9'' WHERE TABLE_NAME = ''XXX''';
END IF;
S_SQL := REPLACE(S_SQL,'XXX',i_TABLE);
-- "XXX"、 ヨ、ュエケ、ィ
-- DBMS_OUTPUT.PUT_LINE('S_SQL
= ' || S_SQL );
-- DEBUG
S_CUR := DBMS_SQL.OPEN_CURSOR;
-- ・ォ。シ・ス・・ェ。シ・ラ・
DBMS_SQL.PARSE(S_CUR,S_SQL,DBMS_SQL.V7);
-- 」モ」ム」フハク、ホ・サ・テ・ネ
S_EXE := DBMS_SQL.EXECUTE(S_CUR);
-- ・ォ。シ・ス・シツケヤ
-- フ皃テヘ・サ・テ・ネ
oCNT1 := CNT1;
oCNT2 := CNT2;
IF oCNT1 IS NULL
OR oCNT2 IS NULL OR ( oCNT1 = 0 AND oCNT2 = 0 ) THEN
nRET := 9;
-- ウコナ ニ。シ・ヨ・、ハ、キ
ELSIF oCNT1 <> oCNT2 THEN
nRET := 1;
-- ケ猯ワソ ャー网ヲ
ELSE
nRET := 0;
-- ケ猯ワソ ャニア、ク
END IF;
EXCEPTION
/*** チエ、ニ、ホ・ィ・鬘シ、ホセケ
***/
WHEN OTHERS THEN
/* フ皃テヘ、ホタ゜ト */
nRET := SQLCODE; -- ーロセスェホサ
END SP_Column_Su;
/
SHOW ERRORS