我的代码如下:CREATE OR REPLACE TYPE product_type AS OBJECT(
product_name varchar2(20),
product_description varchar2(4000) ,
product_price number,
product_price_date date,
member procedure AddProuduct (p_product_name varchar2,
p_product_description varchar2, p_product_price number,p_product_price_date date),
member function DaysSincePriceChange
Return number
); create table product_table of product_type;create or replace type body product_type as
member procedure AddProuduct (p_product_name varchar2,
p_product_description varchar2, p_product_price number,p_product_price_date date) as
begin
insert into product_table values (p_product_name,p_product_description,p_product_price,
p_product_price_date);
end AddProduct;
end;
在oracle 8.1.5 ,win2000server ,sqlplus下运行
出现该警告,我的 这个实体是建立了,还是没有建立呢?,有没有什么影响。
product_name varchar2(20),
product_description varchar2(4000) ,
product_price number,
product_price_date date,
member procedure AddProuduct (p_product_name varchar2,
p_product_description varchar2, p_product_price number,p_product_price_date date),
member function DaysSincePriceChange
Return number
); create table product_table of product_type;create or replace type body product_type as
member procedure AddProuduct (p_product_name varchar2,
p_product_description varchar2, p_product_price number,p_product_price_date date) as
begin
insert into product_table values (p_product_name,p_product_description,p_product_price,
p_product_price_date);
end AddProduct;
end;
在oracle 8.1.5 ,win2000server ,sqlplus下运行
出现该警告,我的 这个实体是建立了,还是没有建立呢?,有没有什么影响。
解决方案 »
- 在表中的id name grade habby四个字段改成1 mirro 60 足球//怎么写?
- 将表移动到另一个表空间,除了会使索引失效,还会引起其它什么问题吗?
- 关于oracle10,配置的一些问题
- 求教一个问题,标题长长的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 请教ORACLE7登陆远程服务器?
- 一个很菜的问题
- 请教,怎么用用sql语句实现取一条记录里面两个字段A和B中较大的那个??
- 使用rman的时候如何使用restore恢复到指定的时间点?
- 初来此地,先散100分
- orcale视图中字段如何连接function
- 如何更新数据库索引??
- proc的高手请进(难题,分不成问题)
1.show error;
2.SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_TYPE='TYPE';
警告:已创建的类型出现编译错误。SQL> show erro
TYPE PRODUCT_TYPE出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
12/1 PLS-00103: 出现符号 "CREATE"
2.可以分步骤运行,先执行
CREATE OR REPLACE TYPE product_type AS OBJECT(
product_name varchar2(20),
product_description varchar2(4000),
product_price number,
product_price_date date,
member procedure AddProuduct (p_product_name varchar2,
p_product_description varchar2, p_product_price number,p_product_price_date date),
member function DaysSincePriceChange Return number
);
SQL> /
类型已创建。
3.执行第二段脚本时出错:
SQL> create or replace type body product_type as
2 member procedure AddProuduct (p_product_name varchar2,
3 p_product_description varchar2, p_product_price number,p_product_price_date date) as
4 begin
5 insert into product_table values (p_product_name,p_product_description,p_product_price,
6 p_product_price_date);
7 end AddProduct;
8 end;
9 /警告:已创建的类型主体出现编译错误。SQL> show error
TYPE BODY PRODUCT_TYPE出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
7/8 PLS-00113: END 标识符 'ADDPRODUCT' 必须同 'ADDPROUDUCT' 匹配
(在第 2 行,第 18 列)
可以发现 end AddProduct; 这句拼写错了。
4.修改后继续执行:
1 create or replace type body product_type as
2 member procedure AddProuduct (p_product_name varchar2,
3 p_product_description varchar2, p_product_price number,p_product_price_date date) as
4 begin
5 insert into product_table values (p_product_name,p_product_description,p_product_price,
6 p_product_price_date);
7 end AddProuduct;
8* end;
SQL> /警告:已创建的类型主体出现编译错误。SQL> show error
TYPE BODY PRODUCT_TYPE出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
8/17 PLS-00538: 子程序或游标 'DAYSSINCEPRICECHANGE'
必须按照对象类型说明进行说明,并且必须在对象类型主体中进行定义
现在你应该知道为什么了吧?
我个人建议你把insert操作和对象放到一个package里面,这样就不会有什么问题了。