Как я должен сохранить GUID в Oracle?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

46
задан Luke Girvin 6 December 2012 в 09:18
поделиться

6 ответов

CREATE table test (testguid RAW(16) default SYS_GUID() ) 

Этот блог изучил относительную производительность.

50
ответ дан Ben 26 November 2019 в 20:35
поделиться

Если я понимаю вопрос правильно, Вы хотите генерировать уникальный идентификатор при вставке строки в дб.
Вы могли использовать последовательность , чтобы сделать это. ссылка здесь
, Как только Вы создали свою последовательность, можно использовать его как это:

INSERT INTO mytable (col1, col2) VALUES (myseq.NEXTVAL, 'some other data');
4
ответ дан hamishmcn 26 November 2019 в 20:35
поделиться

GUID столь не используются в Oracle как в MSSQL, мы склонны иметь Числовое поле (не пустой & первичный ключ), последовательность и триггер на вставке для заполнения его (для каждой таблицы).

1
ответ дан Osama Al-Maadeed 26 November 2019 в 20:35
поделиться

В Oracle нет никакого uniqueidentifier.

можно реализовать тот сами при помощи СЫРЫХ ДАННЫХ (своего рода боль) или CHAR. Производительность на запросах, которые ПРИСОЕДИНЯЮТСЯ на поле CHAR, пострадает (возможно, целых 40%) по сравнению с использованием целого числа.

, Если Вы делаете, распределял/копировал базы данных, хит производительности стоит того. Иначе просто используйте целое число.

1
ответ дан MusiGenesis 26 November 2019 в 20:35
поделиться

Использование общей практики Oracle должно создать искусственный ключ. Это - столбец, определенный как число. Это заполняется через последовательность. Это индексируется/ограничивается с помощью определения первичного ключа.

0
ответ дан dacracot 26 November 2019 в 20:35
поделиться

Как утверждали другие, использование GUID снижает производительность по сравнению с числовыми последовательностями. Тем не менее, существует функция с именем « SYS_GUID () », доступная с Oracle 8i, которая предоставляет необработанный эквивалент:

SQL> SELECT SYS_GUID() FROM DUAL;

SYS_GUID()
--------------------------------
248AACE7F7DE424E8B9E1F31A9F101D5

Может быть создана функция для возврата отформатированного GUID:

7
ответ дан 26 November 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: