DECLARE
V_BH VARCHAR2(50);
V_STATUS number;
V_SQL VARCHAR2(500);
BEGIN
V_BH:='H53070219001';
FOR CS IN (SELECT T.TABLE_NAME,T.COLUMN_NAME from user_tab_columns T ) LOOP
V_SQL := 'SELECT COUNT(*) FROM ' || CS.TABLE_NAME || ' WHERE ' || CS.COLUMN_NAME || ' = ''' || V_BH || ''' AND 1=1 ';
EXECUTE IMMEDIATE V_SQL INTO V_STATUS ;
IF V_STATUS >0 THEN
INSERT INTO ZJZ_TEMP (VC1,VC2,VC3) VALUES (CS.TABLE_NAME,CS.COLUMN_NAME,V_STATUS);
END IF;
COMMIT;
END LOOP;
END;
我想查詢那些表里的那些欄位值 是 'H53070219001' 但是這段代碼 報錯
ora-01722: invalid number
ora-06512: at line 9
實在不知道哪的錯啊
uj5u.com熱心網友回復:
FOR CS IN (SELECT T.TABLE_NAME,T.COLUMN_NAME from user_tab_columns T ) LOOP
-- 加一個條件
FOR CS IN (SELECT T.TABLE_NAME,T.COLUMN_NAME from user_tab_columns T
where data_type in ('VARCHAR2','CHAR')
)
uj5u.com熱心網友回復:
謝謝大神~~~uj5u.com熱心網友回復:
cs變數不需要先宣告嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107700.html
標籤:開發
上一篇:Oracle版本問題
下一篇:查詢結果行變列的問題請教
