2011-09-22 50 views
1

好的。这里有一些背景知识:我已经创建了一个简单的APEX应用程序,它将取代一些静态HTML页面,Access数据库和大量的手动工作。用户使用该应用程序向我的团队提交工作请求,并在提交表格后将信息以“收据”的形式提交给他们,并附有新的“请求#”,他们可以使用类似于UPS追踪号码的方式进行查询他们的项目。该号码是提交表的主键,并且通过序列自动递增。迄今为止,这一切都很完美。使用SQL在Oracle APEX中连接数字

我的问题是,自动递增工作,我的PK显然必须是一个'数字'。再次不是一个真正的问题。问题是,在迁移到APEX工具之前,我们的'请求#'被格式化为8位数字的字符串,并且在实际数字的左边有必要数量的零(0)。所以请求#789实际上存储为我们的Access数据库中的00000789。我的老板已经表示,当#在APEX工具中显示时,也需要模仿这种相同的格式,因为这是我们的客户习惯看到的。

我需要请求#继续存储为一个数字,以便我可以继续自动递增,但我需要找到一些方法来追加/连接适当数量的0到数字的前面被展示。这可能需要用SQL来完成。我目前使用这个简单的SQL脚本来显示#:

SELECT req_num 
FROM proj_apex 
WHERE req_num = (SELECT MAX(req_num) FROM proj_apex) 

想法?任何APEX或SQL开发人员都有想法?

回答

2
select to_char(req_num, '00000009') ... 

http://www.techonthenet.com/oracle/functions/to_char.php

+0

完美!感谢您帮助一个低级的新手。不能要求更干净,更简单的做法! – Spags

+0

不客气。至少我的回答也很简洁。 –

+0

再次问候。我有一个类似的问题,上面的一个。我现在需要做到这一点,但有一个格式掩码似乎不支持基于我自己的测试(ORA-01481:无效数字格式模型)和上面发布的文章。基本上我需要的是相当于此的功能:select to_char(req_num,'EA-0009')。有什么想法吗? – Spags