我所試圖做的PL/SQL PLS-00208:標識符「類型」是不是合法的光標屬性
我想寫使用Dynamic SQL創建表的過程。
什麼問題
我收到以下錯誤,而編譯程序:
LINE/COL ERROR
-------- -----------------------------------------------------------------
4/5 PL/SQL: Statement ignored
4/80 PLS-00208: identifier 'TYPE' is not a legal cursor attribute
步驟:
create or replace procedure createTab is
begin
EXECUTE IMMEDIATE 'create table thisYearCustomerNames (id ' || customer.id%type || ', name ' ||
customer.name%type || ', points ' ||
customer.points%type || ')';
end;
/
客戶表
Name Null? Type
-----------------------------------------
ID NOT NULL NUMBER(5)
NAME VARCHAR2(30)
ADDRESS VARCHAR2(40)
POINTS NOT NULL NUMBER(10)
DATE_OF_JOINING DATE
GENDER CHAR(1)
動態SQL很難寫,因爲它會將編譯錯誤轉化爲運行時錯誤。我建議你從編寫靜態SQL開始,並確保你有一個在SQL Developer中運行的有效語句(或者你使用的任何東西)。完成之後,您可以將其轉換爲動態代碼。 – APC
我使用notepad ++代碼,並使用'@'運算符作爲文件在sql終端中運行它。這是一個好方法嗎?並非常感謝你的寶貴建議。再次感謝您花時間製作出這樣一個不錯的建議。會嘗試它。 – Ahtisham
我認爲這是初學者的最佳方式。你手寫的SQL越多,學到的東西越多。太多的人從IDE開始,以犧牲理解爲代價讓他們產生幻覺。 – APC