Ses*_*raj 0 oracle plsql stored-procedures oracle10g
创建表:
create table customer (Name varchar2(10), Address varchar(40), Contact number);
Run Code Online (Sandbox Code Playgroud)
INSERT的创建过程:
CREATE OR REPLACE PROCEDURE SP_CUSTOMER (
p_name customer.Name%TYPE,
p_address customer.Address%TYPE,
p_contact customer.Contact%TYPE)
IS
BEGIN
INSERT INTO customer ("Name", "Address", "Contact")
VALUES (p_name, p_address, p_contact);
COMMIT;
END;
/
Run Code Online (Sandbox Code Playgroud)
错误:IT显示:警告:使用编译错误创建的过程.
CREATE PROCEDURE FOR SELECT:
CREATE OR REPLACE PROCEDURE SP_SELECT_CUSTOMER (
p_name customer.Name%TYPE,
p_address customer.Address%TYPE,
p_contact customer.Contact%TYPE)
IS
BEGIN
SELECT Name, Address, Contact FROM customer;
END;
/
Run Code Online (Sandbox Code Playgroud)
错误:IT显示:警告:使用编译错误创建的过程.
问题是什么.?怎么解决呢.
每当你在SQL*Plus中编译某些东西并且你得到"编译错误"时,你要做的第一件事就是SHOW ERRORS告诉你实际出了什么问题.
您的第一个过程存在一个问题,即列名与表中的列名不匹配.你的表定义具有Name,Address和Contact,而是因为你没有使用双引号,列名实际上是NAME,ADDRESS和CONTACT-但你的INSERT语句使用双引号,所以它试图插入Name等刚刚摆脱了双 - 引用,你在这里不需要它们.
在第二个过程中,PL/SQL中有一个SELECT语句,但是没有指定将结果数据放在何处.您至少需要一个INTO子句,或者可能对结果记录执行LOOP.
| 归档时间: |
|
| 查看次数: |
29167 次 |
| 最近记录: |