首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>oracle>正文

如何获取指定表中指定字段内的可用编号

http://www.oklinux.cn  2008-04-23  赛迪网 Alvin  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

在对数据库编程的过程中,许多人经常会用一个ID列标记该记录的信息。但获得一个可用的编号后经常需要频繁的查找以使编号不被打断,本文将主要介绍一个解决此问题的示例,具体内容请参考下文:

/*
过程名 getNum
功能:  取得指定表的下一个可用的编号
输入参数:   @tablName 表名
@FileldName 即要查询的字段名.在不同的表编号所写的列名不是一样的.如有ID Num等
@Num 返回下一个可用的编号  
*/
CREATE PROCEDURE dbo.getNum  
@tablName VARCHAR(8),
@FileldName VARCHAR(8),
@Num  VARCHAR(6) OUTPUT
AS
DECLARE @Sql  VARCHAR(200)
DECLARE @oldNum INT,@newNum VARCHAR(6)
SET @Sql=''  
SET @Sql='DECLARE Mycursor CURSOR FOR   SELECT '  RTRIM(@FileldName)   
' FROM '   RTRIM(@tablName) 
EXEC(@Sql)
IF @@ERROR=0
BEGIN
SET  @oldNum=1
OPEN Mycursor
FETCH NEXT FROM Mycursor INTO @newNum
WHILE @@FETCH_STATUS=0
BEGIN
IF REPLICATE(0,3-LEN(@oldNum)) CAST(@oldNum AS VARCHAR) = @newNum 
SET @oldNum=@oldNum 1
ELSE
BEGIN 
SET @Num=REPLICATE(0,3-LEN(@oldNum)) CAST(@oldNum AS VARCHAR) 
RETURN  
END
FETCH NEXT FROM Mycursor INTO @newNum 
END
CLOSE Mycursor
DEALLOCATE Mycursor
SET @Num=REPLICATE(0,3-LEN(@oldNum)) CAST(@oldNum AS VARCHAR) 
--如果顺序没有被打断
RETURN
END   
ELSE
RAISERROR
('该表或列名不存在.请检查输入的表名和列名是否正确?',7,1)
GO


上一篇:Oracle数据库导入导出方法的个人总结   下一篇:由浅入深讲解Oracle数据库进程的相关概念

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Oracle数据库导入导出方法的个人总结
·由浅入深讲解Oracle数据库进程的相关概念
·Oracle数据库穿透防火墙实现服务端的连接
·带你深入了解管理Oracle实例的相关方法
·了解Oracle体系结构前必须掌握的两个概念
·讲解Oracle系统中用户权限的赋予和查看
·带你深入了解如何根据数据库时间戳选择列
·解决未找到Oracle客户端和网络组件现象
·全面解析Oracle无法连接本地数据库问题
·拨云见日 正确认识password file的作用
·全面解析Oracle数据库中管理实例的方法
·Oracle数据字典与动态性能表的相关概念
·Oracle数据库中管理表空间和数据文件
·Oracle数据库中Undo数据段的作用及类型
·讲解Oracle面试过程中常见的二十个问题
·轻松掌握Oracle数据库Where条件执行顺序
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·关于Oracle将目标数据库设为归档模式应
·Linux下OCI基础:配置Instant Client连
·Oracle中被锁定的解决办法
·Oracle 11G 无法连接到数据库实例故障
·浅谈创建Oracle数据库连接的两种方法
·如何从Oracle技术支持获得更多
·Oracle数据库中安全知识介绍
·Oracle推出Linux服务并不成功
·Oracle专用服务器的内存结构分布原则
·如何在RAC环境下修改Oracle字符集
·Oracle过程中执行动态SQL或DDL语句
·2008年Oracle错误、备份、升级等最热门
  阅读排行
·详解远程SHELL下安装配置RedHat ES 5的
·Ubuntu上安装Oracle 10G及相关配置
·Oracle高级复制(同步复制)配置步骤详细
·如何修改遗失的MySQL的ROOT用户密码
·Redhat Linux AS4 安装Oracle 10g(包括
·Linux下OCI基础:配置Instant Client连
·解决启动数据库时发生的ORA-12528错误
·在 Oracle Enterprise Linux 上升级到
·Oracle 10g表空间创建的完整步骤
·centos 5.0中成功安装Oracle10g (1020
·如何在RAC环境下修改Oracle字符集
·Oracle数据库导入导出方法的个人总结
·巧用Oracle执行计划机制提高查询性能
·Oracle 10g 在AIX 5.3上安装过程笔记
·Linux真机环境Oracle 10gR2 RAC 安装完
网摘收藏: