Plsql 无法在PL SQL中创建索引

Plsql 无法在PL SQL中创建索引,plsql,Plsql,我只是PL SQL的初学者,并尝试在Oracle11gExpress版上探索使用PL SQL的查询。我无法使用PL SQL过程调用创建索引。我收到一个错误报告:ORA-06550 BEGIN CREATE INDEX employee_empid_index ON employee(empid); END; 我应该在代码中做哪些修改?您不应该在PL/SQL中使用DDL查询。PL/SQL应该用于运行时操作,比如从一个表到另一个表获取数据(例如,安排一个作业,每小时将数据从一个表复制到另一个表进行

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

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

我应该在代码中做哪些修改?

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


简言之,PL/SQL并不打算执行DDL的任务。但是,PL SQL中的一些DDL语句是允许的。很好地解释了这一点

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


简言之,PL/SQL并不打算执行DDL的任务。但是,PL SQL中的一些DDL语句是允许的。很好地解释了这一点。

在这种情况下,您不能使用“开始”和“结束”术语,请删除这些术语并重试。

在这种情况下,您不能使用“开始”和“结束”术语,请删除这些术语并重试。

DDL语句(例如
创建表
。或
创建索引
)在
PL/SQL
上下文中不允许使用;(PL/SQL上下文介于
BEGIN
END
之间)。 但是,您可以在
PL/SQL
块中使用动态SQL语法执行它们

范例

BEGIN
 EXECUTE IMMEDIATE 'CREATE INDEX employee_empid_index ON employee(empid);'
END;
或者在
SQL
上下文中执行它们

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

范例

BEGIN
 EXECUTE IMMEDIATE 'CREATE INDEX employee_empid_index ON employee(empid);'
END;
或者在
SQL
上下文中执行它们

CREATE INDEX employee_empid_index ON employee(empid);

要在引号中执行的语句不应该有分号,因此应该立即执行“createindex employee\u empid\u INDEX ON employee(empid)”;要在引号中执行的语句不应该有分号,因此应该立即执行“createindex employee\u empid\u INDEX ON employee(empid)”;