CREATE OR REPLACE PROCEDURE a ()
IS
-- declaration section (after the IS or AS)
NUMB_ID NUMBER; --need trailing semi colon after every statement
BEGIN
-- actual code
NUMB_ID:= 1; -- unclear if you want to assign 1 or assign a value from a table.
INSERT INTO TAB1
(ID)
VALUES
(NUMB_ID); --need trailing semi colon after every statement, the @ is not oracle syntax
...
END a;
2条答案
按热度按时间6l7fqoea1#
不知道你从哪里得到的语法,但它看起来根本不像oracle语法。我建议你看一些例子,网上有很多。我解决了几个问题,应该可以让你开始了。
jecbmhm32#
你的语法全错了。您看过pl/sql引用了吗?
您将numb\u id声明为一个数字,然后尝试为其分配一个字符串。
不是指定“select 1 from dual”的结果,而是实际字符串“select 1 from dual”。即使它确实分配了结果,因为您从dual中选择了一个特定的数字,您最好首先正确地执行它:
编号:=1;
另请注意,没有包含终止分号。
使用'@'不是引用内部变量的方式。我将把它作为一个练习留给学生参考数据库pl/sql语言参考来查看正确的方法。