我有2个Oracle问题
如何将此SQL Server语句翻译为适用于Oracle?
Create table MyCount(Line int identity(1,1))
用于在Orace数据库中存储图片的SQL Server图像类型的等价物是什么?
答案 0 :(得分:5)
1:你必须创建一个序列和一个触发器
CREATE SEQUENCE MyCountIdSeq;
CREATE TABLE MyCount (
Line INTEGER NOT NULL,
...
);
CREATE TRIGGER MyCountInsTrg BEFORE INSERT ON MyCount FOR EACH ROW AS
BEGIN
SELECT MyCountIdSeq.NEXTVAL INTO :new.Line
END;
/
2:BLOB。
答案 1 :(得分:5)
如果您管理插入内容,则无需使用触发器:
CREATE SEQUENCE seq;
CREATE TABLE mycount
(
line NUMBER(10,0)
);
然后,插入一个值:
INSERT INTO mycount(line) VALUES (seq.nextval);
对于图像,您可以使用BLOB来存储任何二进制数据,或使用BFILE来管理或多或少作为BLOB,但数据存储在文件系统中,例如{{1}文件。
参考文献:
答案 2 :(得分:1)
我们的工具可以为您解答这些问题。我正在谈论Oracle SQL Developer。
首先 - 它有一个Create Table向导 - 12 / 18c Database支持Identity列的本机实现。
你的新表DDL
CREATE TABLE MYCOUNT
(
LINE INT GENERATED ALWAYS AS IDENTITY NOT NULL
);
另外,我们有一个转换器 - 它可以占用SQL Server位并将它们转换为等效的Oracle位。这是一个完整的迁移向导,可以捕获和转换整个数据模型。
但是对于一次性,你可以使用你的Scratchpad。它可以在Tools,Migrations菜单下找到。
这里是您的代码,并为您提供适用于任何Oracle数据库的内容。
如果您使用的是该版本的Oracle,请务必使用12 / 18c中的身份功能。要维护的数据库对象更少。