无法在PL SQL中创建索引

时间:2017-07-28 21:17:28

标签: plsql

我只是PL SQL的初学者,并试图在Oracle 11g快递版上使用PL SQL探索查询。我无法使用PL SQL过程调用创建索引。我收到错误错误报告:ORA-06550

BEGIN
CREATE INDEX employee_empid_index ON employee(empid);
END;

我应该在我的代码中进行哪些修改?

3 个答案:

答案 0 :(得分:2)

您不应该在PL / SQL中使用DDL查询。 PL / SQL应该用于运行时的事情,比如将数据从一个表提取到另一个表(例如,安排一个作业,每小时将数据从一个表复制到另一个表进行备份)。表创建,索引创建应该事先用普通的sql完成。

简而言之,PL / SQL不是为了完成DDL的工作。但是,允许在PL SQL中使用一些DDL语句。 This article解释得很好

答案 1 :(得分:2)

CREATE TABLE上下文中不允许使用DDL语句(例如CREATE INDEX ..或PL/SQL); (PL / SQL上下文介于BEGINEND之间。 但是,您可以使用PL/SQL块中的动态SQL语法执行它们。

实施例

BEGIN
 EXECUTE IMMEDIATE 'CREATE INDEX employee_empid_index ON employee(empid);'
END;

或者只是在SQL上下文中执行它们。

CREATE INDEX employee_empid_index ON employee(empid);

答案 2 :(得分:0)

在这种情况下,你不能使用"开始"和"结束"条款,删除这些条款并再试一次。