首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle中的PIC S9问题

oracle中的PIC S9问题
EN

Stack Overflow用户
提问于 2009-12-03 13:14:39
回答 3查看 1K关注 0票数 0

经理给我分配了创建DDL脚本的任务。其中一个必填字段被指定为PIC S9 with length 16,但我不知道S9是否受Oracle支持。

DDL脚本需要与oracle 10g兼容。

此PIC S9数据类型是什么?

Oracle是否支持此功能?如果是,我可以使用以下内容吗?

代码语言:javascript
复制
create table tablename(srno number, name PIC S9(16) );
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-03 15:37:55

PIC ( 16 )肯定是S9,它定义了一个包含16位数字的有符号数字数据项。二进制、COMP-n或压缩十进制修饰符的存在或不存在表示此数据在磁盘上的存储方式。here描述了不同的存储选项。

我怀疑你的经理不懂SQL,只是试图用“科博尔语”向你传达需求。如果是这样,他/她实际上是说这需要是一个最多16位数字的有符号整数,并且您可以使用最自然的Oracle类型,它是NUMBER(16) integer

在Pro*Cobol中找到了OVERPUNCH参考@OMG Ponies,这是一个允许您在COBOL程序中嵌入Oracle SQL语句的工具。为此,需要将NUMBER等Oracle内部类型映射到Cobol类型,如PIC S9(16) PACKED-DECIMAL。在本例中,将Cobol类型定义为前导(而不是尾随)。

术语"overpunch“来自早期大型机上的分区十进制表示法。为了节省穿孔卡片上的空间,标志将在前导或尾随数字上进行“过度穿孔”。

票数 0
EN

Stack Overflow用户

发布于 2009-12-03 13:28:11

根据this link的说法,PIC是一种S9数据类型:

代码语言:javascript
复制
PIC S9(4) COMP (Integer 16-bit)
    Specifies an integer that is 16 bits, or 2 bytes, in length.
PIC S9(9) COMP (Integer 32-bit)
    Specifies an integer that is 32 bits, or 4 bytes, in length.

According to this link,您可以使用OVERPUNCH TRAILING外部数据类型。因此,您的DDL语句将类似于:

代码语言:javascript
复制
CREATE TABLE tablename (
   srno NUMBER,
   name OVERPUNCH TRAILING
);

另一种方法是使用NUMBER,因为它是一个数字数据类型,但这不适用于您给出的示例-其中VARCHAR2通常是一个名称。

票数 1
EN

Stack Overflow用户

发布于 2009-12-03 13:25:23

PIC S9是Cobol中的一种声明。据我对Oracle的了解,它不受支持。您需要在数字(16)字段中输入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1837807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档