Oracle 错误: ORA-06550: 第 12 行,第 4 列



Oracle 在执行表的重新定义时给了我以下错误。

此代码适用于其他表中的其他重定义。

SQL> BEGIN
2  
3  -- **************************************************************
4  -- Start the Redefinition Process
5  -- **************************************************************
6  BEGIN
7  DBMS_REDEFINITION.start_redef_table(
8  uname      => 'User',
9  orig_table => 'SAN_RELAC_PERSONA',
10  int_table      => 'NEW_SAN_RELAC_PERSONA',
11  options_flag => DBMS_REDEFINITION.CONS_USE_ROWID);
12  END;
13  /
END;
*
ERROR at line 12:
ORA-06550: line 12, column 4:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the
following:
( begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge

你有BEGIN BEGIN但没有END; END;

您可以按照其他人的建议添加第二个END,也可以丢失BEGIN

begin
dbms_redefinition.start_redef_table
( uname        => 'User'
, orig_table   => 'SAN_RELAC_PERSONA'
, int_table    => 'NEW_SAN_RELAC_PERSONA'
, options_flag => dbms_redefinition.cons_use_rowid );
end;
/

删除第13 行/

BEGIN
-- **************************************************************
-- Start the Redefinition Process
-- **************************************************************
BEGIN
DBMS_REDEFINITION.start_redef_table(
uname      => 'User',
orig_table => 'SAN_RELAC_PERSONA',
int_table      => 'NEW_SAN_RELAC_PERSONA',
options_flag => DBMS_REDEFINITION.CONS_USE_ROWID);
END;
END;

你的斜杠(/(符号在错误的位置 - 它应该结束脚本,所以你应该把它放在最后一个END关键字之后。我希望它有所帮助。

BEGIN
-- **************************************************************
-- Start the Redefinition Process
-- **************************************************************
BEGIN
DBMS_REDEFINITION.start_redef_table(
uname      => 'User',
orig_table => 'SAN_RELAC_PERSONA',
int_table      => 'NEW_SAN_RELAC_PERSONA',
options_flag => DBMS_REDEFINITION.CONS_USE_ROWID);
END;
END;
/

最新更新