Генерация первичного ключа при записи из 1С во внешний источник данных #793265


#0 by Лебовски
Добрый день, товарищи гроссмейстеры! Ситуация вроде бы банальная: просто пишу данные из 1Ски во внешний источник данных (Oracle), вполне обычная таблица. Как устанавливать в таблице ключ (у нас обычное числовое поле int)? Хранить его в 1ске где-то и наращивать каждый раз? Или это на стороне Oracla как-то должно управляться? Подскажите, пожалуйста
#1 by Лефмихалыч
я не верю в то, что оракл не умеет делать автоинкремент
#2 by Лебовски
Да наверное умеет. Просто когда в 1С не присваиваешь явно значение ключевому полю, туда ставится 0 и в следующий раз уже запись не уникальна. То есть где-то в Оракле какая-то галочка нужна для поля, и если в него ничего не пишется, оно само нарастает?
#3 by Лебовски
Да, наверное, это как-то так делается -- create table CREATE TABLE MAPS ( MAP_ID INTEGER NOT NULL , MAP_NAME VARCHAR NOT NULL, UNIQUE (MAP_ID, MAP_NAME) ) --create sequence CREATE SEQUENCE MAPS_SEQ; -- create tigger using the sequence CREATE OR REPLACE TRIGGER   MAPS_TRG BEFORE INSERT ON MAPS FOR EACH ROW WHEN (new.MAP_ID IS NULL) BEGIN   SELECT MAP_ID_SEQ.NEXTVAL   INTO   :new.MAP_ID   FROM   dual; END; / --enable the trigger ALTER TRIGGER MAPS_TRG ENABLE ;
#4 by Неверный Параметр И
Ужс. CREATE TABLE t (     ID NUMBER GENERATED ALWAYS AS IDENTITY,     Decsr VARCHAR2 ); 12c
#5 by Лебовски
Да уж, действительно :) Спасибо!
#6 by YFedor
В 1С можно его хранить в справочнике: а именно - создаем справочник с числовым кодом с автонумерацией. В этом справочнике создаем элемент - код генерится автоматически - этот код и пишем в ключ в  Оракле
#7 by Лефмихалыч
ни зачем не нужно это хранить в 1С
#8 by Лебовски
Да, мне нужно по сути просто некоторые записи переносить, создавать для этого лишний справочник ни к чему, если можно разрулить на Оракле
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С