用的是sql developer3.0自带的迁移工具,参照http://www.51cto.com/php/viewart.php?ID=275067因为sql中有个自定义类型,结果在生成的迁移sql中有类似语句
CREATE TABLE UDT
(
ADDRESS_TYPE NUMBER(5,0)
)CREATE GLOBAL TEMPORARY TABLE tt_v_address
(
address UDT.ADDRESS_TYPE%TYPE
)
但是create table 好像不支持%TYPE这种写法啊 命令出错, 行: 15,298 列: 26
错误报告:
SQL 错误: ORA-00911: 无效字符
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
后来试了一下,好像 create procedure function等都可以直接引用 表列的%type类型,create table 却不能。
是不是这样的?
CREATE TABLE UDT
(
ADDRESS_TYPE NUMBER(5,0)
)CREATE GLOBAL TEMPORARY TABLE tt_v_address
(
address UDT.ADDRESS_TYPE%TYPE
)
但是create table 好像不支持%TYPE这种写法啊 命令出错, 行: 15,298 列: 26
错误报告:
SQL 错误: ORA-00911: 无效字符
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
后来试了一下,好像 create procedure function等都可以直接引用 表列的%type类型,create table 却不能。
是不是这样的?
creat table 是ddl
有些东西不能乱来
在创建数据中,要想要必须要在PL/SQL中用
使用软件plsqldevelopment中用
借你的问题 我才学习到这是什么
这是自动生成的。
不知道你用过迁移工具OMW没有?就是oracle migration wizard,就是oracle sql developer 3.0自带的
参见 http://www.51cto.com/php/viewart.php?ID=275067
--比如这样建一个非常简单的测试用的SQL Server库。create database test
go
use test
go
create type mytype from bigint
go
create function tabfunc (@para int)
returns @result table (colsa mytype)
as
begin
insert @result select 3
return
end
go--下面就是迁移到oracle时会自动生成的迁移代码(部分)--UDT DEFINITION
CREATE TABLE UDT( mytype NUMBER(19,0) );connect dbo_test/dbo_test;
connect dbo_test/dbo_test;
/*Global Temporary Tables:1 *//* Translation Extracted DDL For Required Objects*/
CREATE GLOBAL TEMPORARY TABLE tt_v_result( colsa UDT.MYTYPE%TYPE );
/