我们正在将数据库从Oracle迁移到MS SQL server (虽然我们喜欢oracle,但出于一些业务原因)。因此,我们使用SSMA ()作为迁移工具,在迁移我们的数据库时,将创建一个模式,并在"ssma_oracle“下自动生成一些函数,以支持to_char、to_date等甲骨文功能。在迁移的dtabase中,使用例如:ssma_oracle.to_char_numeric.to_number2等函数创建了一个新的模式
但是,有一种方法是,当我运行我的java应用程序时,这个工具无法创建"ssma_oracle.to_char_date",该应用程序之前指向oracle,现在指向MS (当然,我在java端为本地SQL查询、更改方言等做了更改),当我在hibernate java对象上运行更新时,我得到了"MicrosoftSQL server找不到列“"ssma_oracle”或用户定义的函数或聚合的"ssma_oracle.to_char_date",或者名称不明确。
因此,当我在MS服务器上浏览新数据库时,我会发现没有创建此方法。那是工具里的bug吗?有关SSMA工具及其创建的功能的更多信息在https://learn.microsoft.com/en-us/sql/ssma/oracle/project-settings-conversion-oracletosql?view=sql-server-ver16上使用:MicrosoftSQLServer2019 (RTM-CU15) - 15.0.4198.2 (X64)
发布于 2022-08-10 18:07:48
"SSMA4OracleSQLServerCollections.NET"函数是使用ssma_oracle.to_char_date程序集的高级特性,因此不能像传统的数据库对象那样编写脚本。
在SQL2019中,有一个名为‘clr严格安全’的高级安全选项,默认情况下它是启用的。此功能不允许在系统数据库中创建程序集。
在数据库实例级别禁用安全性选项之后,在我用SSMA工具从Oracle迁移的架构中,我能够成功地迁移/创建to_char_date函数使用的程序集。
https://stackoverflow.com/questions/73310879
复制相似问题