我所试图做的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