我使用SQL Server 2005 数据库右键导出数据 功能(暂时还没使用SSIS)
问题在于SQL Server 2005中的表名、字段都是小写的,并且程序里面的SQL语句也都是用的小写在Oracle里面必须要大写才能识别,小写的话要加引号,这样程序、存储过程、触发器要改很多东西。在转换过程能不能将这些小写的批量转成大写的?
或者在其他的步骤将这些小写的批量转成大写的?

解决方案 »

  1.   

    楼主,用折中方法行否?例如:先到处到txt中,然后使用word转换成大些,然后在导到oracle,可行?
      

  2.   

    恐怕不行.update sysobjects set name=upper(name) where xtype='U'
    /*
    消息 259,级别 16,状态 1,第 6 行
    不允许对系统目录进行即席更新。
    */
      

  3.   


    这个在SSMS里面直接用快捷键就能变成大写,
    但是我变成大写以后导出时报错
    弄的我很郁闷
      

  4.   

    在Oracle里面必须要大写才能识别,小写的话要加引号,这样程序、存储过程、触发器要改很多东西。 
    ===================================
    oracle的字段不需要大写的,但是你select出来的全部是大写的;
    如果你要小写就要自己加单引号或双引号你在存储过程里的字段名小写也可以识别的
      

  5.   

    做一个遍历的操作,用sp_rename系统存储过程去逐个字段更新。
      

  6.   

    谁说Oracle不能用小写??只是你看到的都是大写而已。
    你先导出一个小的表再导入Oracle试试看再说呀。
      

  7.   

    不明白你什么意思,如果你只导数据到oracle的话,采用生成insert语句的方法不会有问题的,也不会有大小写问题。
    存储过程/触发器是什么意思?他们oracle/sqlserver两个之间应该是不能通用的吧。
      

  8.   


    create table testUpper(col varchar2(10))select * from testUpper
    您如果在查询时不报错  请告诉我,您使用的是什么数据库
    至少我使用的Oracle 10g报错
      

  9.   


    比如
    create table testUpper(col varchar2(10)) 
    这个现在在Oracle是testUpper不是TESTUPPER
    哪么在存储过程中使用如下的语句就会报错select * from testUpper ,我就要加引号才不报错
    几百G上T的数据库,我一个一个改啊?如果表名是TESTUPPER就报错
      

  10.   

    在oracle中不加引号,默认全是大写。
      

  11.   

    如果我只有SQL server数据文件,怎么转换?