oracle 11g-求救!用oracle11g实现人事管理数据库设计,在循环键盘输入信息时遇到错误!

问题描述

求救!用oracle11g实现人事管理数据库设计,在循环键盘输入信息时遇到错误!

我现在做用oracle实现人事管理数据库,遇到了很严重的问题,请各位路过的大侠帮帮忙!!!
它的要求和部分代码如下:
我用的是oracle 11g,用cmd进行以下操作,我的用户名已创建(user_name1),被授予了需要用到的权限,创建了3个表空间orcltbs1_1、orcltbs1_2、orcltbs1_3都是(300m的容量)用来完成要求1。
要求:
1、员工表(按出生日期建立分区表)create table emp(empnum varchar2(16) primary key,
empname varchar2(16) not null,
sex number not null constraint s_ck1 check(sex in(0,1)),
birthday date not null,
nation varchar2(10) not null,nativeplace varchar2(40) not null,Ident varchar2(16) not null,department varchar2(16) not null,
marriage number not null constraint s_ck2 check(marriage in(0,1)),address varchar2(40),policy varchar(10) not null,
phone varchar2(16) not null,degree varchar(10) not null,college varchar2(40) not null,duty varchar2(16),title varchar2(16),
sort varchar(10) not null,remark varchar2(400))
partition by range(birthday)
(partition p1 values less than(to_date('1970-1-1','yyyy-mm-dd'))tablespace orcltbs1_1,
partition p2 values less than (to_date('1990-1-1','yyyy-mm-dd'))tablespace orcltbs1_2,
partition p3 values less than (maxvalue) tablespace orcltbs1_3);

2、创建一个存储过程p_inputInfo,通过该过程完成员工基本信息的录入;
create or replace procedure p_inputInfo(
p_empnum emp.empnum%type,
p_empname emp.empname%type,
p_sex emp.sex%type,
p_birthday date,
p_nation varchar2,p_nativeplace varchar2,p_Ident varchar2,p_department varchar2,p_marriage number,p_address varchar2,p_policy varchar2,p_phone varchar2,p_degree varchar2,p_college varchar2,p_duty varchar2,p_title varchar2,p_sort varchar2,p_remark varchar2
)
as
begin
insert into emp values(p_empnum,
p_empname,
p_sex,
p_birthday,
p_nation,p_nativeplace,p_Ident,p_department,p_marriage,p_address,p_policy,p_phone,p_degree,p_college,p_duty,p_title,p_sort,p_remark
);
end p_inputInfo;
3、创建一个存储过程调用p_inputInfo,利用键盘输入职工信息,能够循环输入,每次输入完,要提示继续吗?输入Y继续下一个职工信息输入,输入其它字母,退出输入。
declare
p_panduan varchar2(10);
p_empnum emp.empnum%type;
p_empname emp.empname%type;
p_sex emp.sex%type;
p_birthday emp.birthday %type;
p_nation emp.nation%type;
p_nativeplace emp.nation%type;
p_Ident emp.Ident %type;
p_department emp.department %type;
p_marriage emp.marriage %type;
p_address emp.address %type;
p_policy emp.policy %type;
p_phone emp.phone %type;
p_degree emp.degree %type;
p_college emp.college %type;
p_duty emp.duty %type;
p_title emp.title %type;
p_sort emp.sort %type;
p_remark emp.remark %type;

begin
loop
p_empnum:='&num';
p_empname:='&nam';
p_sex:='&sex';
p_birthday:=&birthda;
p_nation:='&natio';
p_nativeplace:='&nativeplac';
p_Ident:='&iden';
p_department:='&dept';
p_marriage:='&marriag';
p_address:='&addres';
p_policy:='&polic';
p_phone:='&phon';
p_degree:='&degre';
p_college:='&colleg';
p_duty:='&dut';
p_title:='&titl';p_sort:='&sor';p_remark:='&remar';
--(第40行)
p_inputInfo(p_empnum,
p_empname,
p_sex,
p_birthday,
p_nation,
p_nativeplace,
p_Ident,
p_department,
p_marriage,
p_address,
p_policy,
p_phone,
p_degree,
p_college,
p_duty,
p_title,
p_sort,
p_remark);
dbms_output.put_line('是否继续输入?输入Y继续下一个职工信息输入,输入其它字母,退出输入');
--(第59行)
p_panduan:=&panduan;
exit when p_panduan != 'y';
end loop;
end;

操作结果:
输入员工信息,然后输入n的话,是可以把数据插入emp表;但是!!
输入员工信息,然后输入y的话,出现以下错误:第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (user_name1.SYS_C0011485)
ORA-06512: 在 "user_name1.P_INPUTINFO", line 10(也就是P_INPUTINFO这个存储过程的as,应该没什么错吧?)
ORA-06512: 在 line 41
我试过用系统管理员身份,删除掉SYS_C0011485这个约束条件,但是当输入员工信息,然后输入y后,cmd光标一直不动,同时,相应的表空间的可用容量也会越来越少。比如:我输入以下员工信息:p_empnum:='12345';
p_empname:='isi';
p_sex:=0;
p_birthday:=to_date('1979-11-6','yyyy-mm-dd');
p_nation:='han';
p_nativeplace:='gda';
p_Ident:='12345632';
p_department:='ywb';
p_marriage:=0;
p_address:='gdaadsz';
p_policy:='qz';
p_phone:='12345';
p_degree:='daxue';
p_college:='zadsadsk';
p_duty:='jl';
p_title:='jl';p_sort:='jl';p_remark:='wu';
我用dba身份运行:select tablespace_name,sum(bytes) free_spaces from dba_free_space group by tablespace_name;
发现orcltbs1_2的可用容量越来越少,最后cmd出现以下提示:
declare
*
第1行出现错误:
ora-01688:表user_name1.emp分区p2无法通过128(在表空间orcltbs1_2扩展)
ora-06512:在“user_name.p_inputinfo”,line 10
ora-06512:在line 41

请问各位,为什么这种情况下表空间会越来越少?是我的代码有什么逻辑错误吗?
还有,我这个系统要求的是能够循环键盘输入员工信息(至少输入2个员工的信息),请问各位,我的第三个要求的代码哪里错了?麻烦帮我指出来、改正!!
这个东西搞了一天了,不搞出来总觉得是前功尽弃,望各位大侠施以援手!!!万分感谢!

解决方案

额。。。你截图好吧?有些错误不知道报错的地方

解决方案二:

这是截图的内容:
declare
*
第1行出现错误:
ora-01688:表user_name1.emp分区p2无法通过128(在表空间orcltbs1_2扩展)
ora-06512:在“user_name.p_inputinfo”,line 10
ora-06512:在line 41

请问这是什么错误?谢了

时间: 2024-12-31 09:23:01

oracle 11g-求救!用oracle11g实现人事管理数据库设计,在循环键盘输入信息时遇到错误!的相关文章

Windows 64位下装安装Oracle 11g,PLSQL Developer的配置问题,数据库显示空白的完美解决方案(图文教程)_oracle

安装pl sql 后,若下图的数据库处为空.则需要安装32位的客户端,说明pl sql不支持64位客户端连接. 解决办法: 1.下载32位Oracle客户端,并安装 2.设置PLSQL Developer 打开pl sql 在"工具" - "首选项" - "连接"中,设置 OCI库 (即oracle 32位的安装位置) D:\app\Administrator\product\11.2.0\client_1\oci.dll 如下图: 3.添加环境

Oracle 11g简化版通过导入SQL创建用户

环境:Oracle 11g R2 + SQLPlus 问题:Oracle导入SQL 解决: Win +Run------- >Cmd------->输入以下命令: --语法:sqlplus 用户名/密码 @sql文件 sqlplus system/manager @H:\Oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN\scott.sql 说明:H:\Oracle\product\11.2.0\dbhome_1\RDBMS\ADMIN下的scott.sql文

ORACLE 11g在Linux下手工配置EM

使用OTK工具安装的Oracle默认没有配置EM,下面记录下配置和启动过程! 首先创建EM,执行下面 的命令 $ emca -config dbcontrol db -repos recreate 我第一次运行报如下错误: Mar 31, 2012 4:16:06 PM oracle.sysman.emcp.EMReposConfig createRepository CONFIG: ORA-00604: error occurred at recursive SQL level 1 ORA-0

【多图】oracle 11g R2 for windows7 64位 安装详细过程

1.下载Oracle 11g R2 for Windows的版本 下载地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html 其中包括两个压缩包:win64_11gR2_database_1of2.zip,win64_11gR2_database_2of2.zip 2.将两个压缩包解压到同一个目录下,即"database",然后单击解

浅谈Oracle 11g 发行版2 新安装后关于登录的一些基本操作_oracle

Oracle 11g是在推出的最新数据库软件,Oracle 11g有400多项功能,经过了1500万个小时的测试,开发工作量达到了3.6万人/月,相当于1000名员工连续研发3年.Oracle 11g提供了高性能.伸展性.可用性和安全性,并能更方便地在低成本服务器和存储设备组成的网格上运行 ,相对过往版本而言,Oracle 11g具有了与众不同的特性 首先要注意,安装时候可以选择桌面类或者服务器类.桌面类就比较简单,不用什么配置,在安装时候提示你输入的密码,是SYS用户的密码:而服务器类,可以配

oracle 11g-【求助】java使用jdbc连接Oracle 11g ex版本数据库时的问题

问题描述 [求助]java使用jdbc连接Oracle 11g ex版本数据库时的问题 我下载Oracle数据库连接驱动类与SqlConnectText.java在同一目录下,是ojdbc6.jar 数据库版本是Oracle11g Express版本,SID是xe JDK是1.6版本的 然后端口1521正在被监听 这是Java类代码 import java.sql.*; public class SqlConnectTest { private static String dbUrl = "jd

ORACLE 11G无法连接到数据库实例故障排除

本文详细介绍ORACLE 11G 无法连接到数据库实例故障排除 ORACLE 11G如果报告--Enterprise Manager 无法连接到数据库实例,则可以按照如下方法排除故障: 1.使用SQL PLUS. 在DOS模式下运行SQL PLUS. SQL> conn 请输入用户名:sys as sysdba 输入密码: 连接成功 SQL>desc dba_users 注意:如果此时提示发现该视图无效.用D:\oracle\product\10.2.0\db_1\RDBMS\ADMINsql

Redhat 6.2 64位系统安装Oracle 11g R2数据库

操作系统:Red Hat Enterprise Linux Server release 6.2 x86_64 Oracle版本:Oracle Database 11g Release 2 Oracle官方下载地址: File1:http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip File2:http://download.oracle.com/otn/linux/oracle11

rehl 5.10安装oracle 11g R1数据库报错

问题描述 rehl 5.10安装oracle 11g R1数据库报错 解决方案 你需要手工创建一个数据库 解决方案二: 手工创建一下数据库试试 http://wenku.baidu.com/view/a43a532f915f804d2b16c1fa.html