我需要創建一個存儲過程,至此我必須從select語句中創建一個表,我必須在其中插入參數。 這裏是我的查詢:從創建和選擇語句創建存儲過程
CREATE TABLE DBL_JW AS
SELECT * FROM (
SELECT m.IDM,
m2.IDM AS dups_key
FROM members_tbl m
LEFT OUTER JOIN members_tbl m2
ON (m.IDM != m2.IDM
AND m.DBIRTH = m2.DBIRTH
AND utl_match.jaro_winkler_similarity(m.SNAME,m2.SNAME) > 90
AND utl_match.jaro_winkler_similarity(m.FNAME,m2.FNAME) > 95))
Where dups_key IS NOT NULL;
我試圖寫這個存儲過程:
CREATE OR REPLACE PROCEDURE JW_DBL_POT
(
P_SNAME IN NUMBER
, P_FNAME IN NUMBER
, P_RC OUT SYS_REFCURSOR
) AS
BEGIN
OPEN P_RC
EXECUTE IMMEDIATE
CREATE TABLE DBL_JW AS
SELECT * FROM (
SELECT m.IDM,
m2.IDM AS dups_key
FROM members_tbl m
LEFT OUTER JOIN members_tbl m2
ON (m.IDM != m2.IDM
AND m.DBIRTH = m2.DBIRTH
AND utl_match.jaro_winkler_similarity(m.SNAME,m2.SNAME) > P_SNAME
AND utl_match.jaro_winkler_similarity(m.FNAME,m2.FNAME) > P_FNAME))
Where dups_key IS NOT NULL;
END JW_DBL_POT;
我面對這樣的錯誤: - PLS-00103:出現符號「CREATE」 即使刪除了EXECUTE IMMEDIATE
指令,我也有同樣的錯誤。我如何管理它? Thx
您沒有將[字符串參數](http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/executeimmediate_statement.htm#CJACGJJG)傳遞給'immediate immediate'。什麼應該進入'P_RC'?爲什麼你要在運行時創建一個表;或者是在其他表中複製數據的表(然後會過時)? –