Sql server 转换SQL以便与Oracle一起使用
我有两个问题Sql server 转换SQL以便与Oracle一起使用,sql-server,oracle,Sql Server,Oracle,我有两个问题 如何将此SQL Server语句转换为在Oracle上工作 Create table MyCount(Line int identity(1,1)) 在Orace数据库中存储图片的SQL Server映像类型等效于什么 1:你必须创建一个序列和一个触发器 CREATE SEQUENCE MyCountIdSeq; CREATE TABLE MyCount ( Line INTEGER NOT NULL, ... ); CREATE TRIGGER
Create table MyCount(Line int identity(1,1))
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.如果管理插入,则不需要为此使用触发器:
CREATE SEQUENCE seq;
CREATE TABLE mycount
(
line NUMBER(10,0)
);
然后,要插入一个值:
INSERT INTO mycount(line) VALUES (seq.nextval);
对于图像,您可以使用s来存储任何二进制数据或或多或少地作为BLOB进行管理,但数据存储在文件系统中,例如jpg
文件
参考资料:
- 我们的工具可以为您解答这些问题。我说的是Oracle SQL开发人员
首先,它有一个创建表向导,12/18c数据库支持标识列的本机实现
还有你的新桌子
CREATE TABLE MYCOUNT
(
LINE INT GENERATED ALWAYS AS IDENTITY NOT NULL
);
此外,我们还有一个转换器—它可以将SQL Server位转换为等效的Oracle位。有一个完整的迁移向导,它将捕获并转换您的整个数据模型
但对于一次性,您可以使用草稿行。可在“工具”“迁移”菜单下找到
在这里,它将获取您的代码,并为您提供可以在任何Oracle数据库中工作的内容
如果您使用的是12/18c版本的Oracle,那么一定要使用该版本的标识功能。要维护的数据库对象更少 请更改标题,我将删除我的否决票(但我还是回答了)。oracle引入自动递增键肯定已经过去了。顺序和触发器是管理键的更安全选项。您还可以使用它们来维护更新日期和更新程序。我认为检查触发器中的任何现有值通常是一个好主意,以防您想在某个点手动插入记录,或者必须使用预定义的ID进行批量插入。如果您在插入行时禁用触发器,我会说这是您的问题。此外,如果您运行的批处理禁用了触发器以提高性能,则最好更新序列以反映这一点。