我正在尝试为小表创建一个简单的界面。我想让它自动生成。表的创建如下:
create table Buyer_Entery_Table
(
serial_number number(6) not null customers_seq,
good_name varchar2(300),
employee_name varchar2(400),
Quantity number(6),
value number(10),
entry_number number(6),
outer_number number(6),
today date,
department_name varchar2(300),
notes varchar2(400)
);
我创建了一个序列以及以下内容:
CREATE SEQUENCE customers_seq
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
在表单构建器中,我在块级别添加一个触发器。触发器是PRE-INSERT。 我用过这段代码:
declare
v_no number;
Begin
select customers_seq.nextval into v_no from Dual;
:Buyer_Entery_table.serial_number := v_no;
end;
我试过编译。我有以下错误。
ORA-00600:内部错误代码,参数:[17069],[101534824],[],[],[],[],[],[]
知道我做过什么错误吗?
答案 0 :(得分:1)
这可能是由于表单6i中的错误。您需要Patch 17来解决它。
请联系metalink.oracle.com并转到补丁部分下载补丁17 link here并安装。
如果您没有metalink帐户,则可以创建metalink帐户。
在注册时进入metalink并使用软件许可证的数据填写表单
有关详细信息,请参阅this thread
问题是在oracle表单中使用双重作为一种解决方法,您可以尝试在数据库中创建一个plsql过程
create or replace procedure pr_increment_sequence(p_increment OUT NUMBER) is
begin
select customers_seq.nextval into p_increment from Dual;
end pr_increment_sequence;
以及Oracle表单中的以下代码
declare
v_no number;
Begin
pr_increment_sequence(v_no);
:Buyer_Entery_table.serial_number := v_no;
end;
答案 1 :(得分:0)
只需创建一个带有虚拟列名称的表格。 并插入一些值即可...你的工作已经完成 句法 create table dual(dummy varchar2(10)); 插入双(' a');