0
嗨那裏我試圖建立一個函數來重置一個序列,以同步與序列不同步的表ID。功能如下:執行即時語句問題 - 變量字段名稱和表名稱
create or replace
FUNCTION P_FNC_SEQUENCERESET(sourceTable IN VARCHAR2, idField IN VARCHAR2, seqname VARCHAR2) RETURN NUMBER
IS
ln NUMBER;
ib NUMBER;
maxId NUMBER;
newValue NUMBER;
diffValue NUMBER;
interimValue NUMBER;
sqlStmt VARCHAR2(2000);
BEGIN
-- Get the maximum of the id field
EXECUTE IMMEDIATE 'SELECT MAX(' || idField || ') INTO ' || maxId || ' FROM ' || sourceTable;
...code continues...
我的EXECUTE IMMEDIATE語句的理解使我相信,這應該是可能的,但是在執行時出現此錯誤:
ORA-00936: missing expression
ORA-06512: at "PSALERT_ADMIN.P_FNC_SEQUENCERESET", line 16
ORA-06512: at line 11
我錯過了SELECT Max('|| ||)。元素來自原始帖子。但你的答案仍然存在。非常感激。 –
@PaulJohnson我從問題中複製了選擇 - 是否可以編輯問題?否則這只是爲了促進周到的閱讀;-) – sers