PIC S9 выпуск в оракуле - PullRequest
       25

PIC S9 выпуск в оракуле

0 голосов
/ 03 декабря 2009

Менеджер назначил мне задачу для создания сценария DDL. Одно из обязательных полей указано как PIC S9 with length 16, но я не знаю, поддерживается ли PIC S9 в Oracle.

Сценарий DDL должен быть совместим с Oracle 10g.

Что это за тип данных PIC S9?

Это поддерживается Oracle? Если да, могу ли я использовать следующее?

create table tablename(srno number, name PIC S9(16) );

Ответы [ 3 ]

1 голос
/ 03 декабря 2009

Согласно этой ссылке , PIC S9 - это тип данных COBOL:

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.

По этой ссылке вы можете использовать внешний тип данных OVERPUNCH TRAILING. Таким образом, ваше утверждение DDL будет выглядеть так:

CREATE TABLE tablename (
   srno NUMBER,
   name OVERPUNCH TRAILING
);

Альтернативой может быть использование NUMBER, поскольку он представляет собой числовой тип данных, но это не работает с примером, который вы привели - где имя обычно будет VARCHAR2.

0 голосов
/ 03 декабря 2009

PIC S9 (16), безусловно, является COBOL и определяет числовой элемент данных со знаком, который содержит 16 цифр. Наличие или отсутствие модификатора BINARY, COMP- n или PACKED DECIMAL обозначает, как эти данные хранятся на диске. Различные варианты хранения описаны здесь .

Я подозреваю, что ваш менеджер не знает SQL и просто пытается сообщить вам требования в "Cobolese". Если это так, он / она действительно говорит, что это должно быть целое число со знаком до 16 цифр, и вы должны использовать наиболее естественный тип Oracle, который равен NUMBER (16) или просто INTEGER .

Ссылка OVERPUNCH @OMG Ponies найдена в Pro * Cobol, который является инструментом, позволяющим встраивать операторы Oracle SQL в программы на языке COBOL. Чтобы это работало, вам необходимо сопоставить внутренние типы Oracle, такие как NUMBER, с типами Cobol, такими как PIC S9 (16) PACKED-DECIMAL. В этом случае вы определяете тип Cobol как ПЕРЕХОДНЫЙ ЛИДИНГ (не ТРЕЙЛИНГ).

Термин "оверпад" происходит от зонного десятичного представления на ранних мэйнфреймах. Чтобы сэкономить место на перфокартах, знак будет «пробит» над начальным или последним символом.

0 голосов
/ 03 декабря 2009

PIC S9 - это декларация в Коболе. Насколько мне известно, Oracle не поддерживается. Вам необходимо ввести число (16) в поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...