我還沒有用oracle編寫很多存儲過程。我閱讀了一些tutotorials(例如:http://plsql-tutorial.com/plsql-procedures.htm),並試圖在我看到後對我的sp進行建模,但我仍遇到錯誤。這裏是一個小樣本程序,錯誤:編寫Oracle存儲過程
create or replace
PROCEDURE TEST_SP()
BEGIN
insert into tablespace.tablename
select * from testtable;
END TEST_SP;
PLS-00103: Encountered the symbol ")" when expecting one of the following:
<an identifier> <a double-quoted delimited-identifier>
,我感到我很想念聲明部分的印象,但我不明白,我應該要述說: -/
任何幫助將不勝感激。
隨後從第一反應Justin的意見,現在得到不同的錯誤:
create or replace
PROCEDURE TEST_SP
AS
BEGIN
insert into tablespace.tablename (col1, col2)
select (col1, col2) from testtable;
END TEST_SP;
PLS-00103: Encountered the symbol "AS" when expecting one of the following:
. , @ in <an identifier> <a double-quoted delimited-identifier> partition subpartition
?你可以嘗試使用SQL * Plus來確保你的工具沒有問題(尤其是在可能存在未終止的SQL語句的GUI應用程序中)?如果你實際上在你的'INSERT'中使用了表空間的名稱而不是模式的名字,你會得到一個ORA-00942錯誤。一般來說,儘管您發佈的語法是有效的,但您不會在「SELECT」列中使用括號。 – 2012-04-20 18:30:53
你說得對,我正在使用模式名稱而不是表空間。我正在使用sqldeveloper。 – 2012-04-20 22:13:03
您確定沒有另一個SQL語句位於CREATE OR REPLACE PROCEDURE語句之上,但沒有正確結束嗎?你可以在SQL * Plus中運行CREATE OR REPLACE PROCEDURE語句嗎? – 2012-04-20 22:14:25