如何在Oracle Developer 6i中创建序列

时间:2014-12-23 07:35:39

标签: oracle plsql oracleforms

我正在尝试为小表创建一个简单的界面。我想让它自动生成。表的创建如下:

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],[],[],[],[],[],[]

知道我做过什么错误吗?

2 个答案:

答案 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');