主要是PHP的OA系统的问题,OA系统是PHP开发的。现状是:PHP+oracle8.06,数据库和PHP程序在一台机子上。希望是:PHP+oracle8.17,数据库和PHP程序分别放在两台机子上,PHP程序不动,
        数据库(oracle8.06)移植到别外一台现有oracle8.17的服务器上。方法一:先在oracle8.06把OA数据库导出(用了exp80命令),生成了.dmp文件,
        在oracle8.17上把.dmp文件导入(用了imp命令)成功,但是中文字符不能正    确显示
问题一:修改PHP程序连接到oracle8.17,创建监听去连接oracle8.17上的OA数据     库,运行程序,连接不了数据库(注:监听是测试成功的,说明连接没问     题)。
方法二:后来把.dmp文件里面的字符集修改好后,再在oracle8.17上导入(导入方法    同上) 成功了,字符集能正确显示了。
问题二:修改PHP程序连接到oracle8.17,创建监听去连接oracle8.17上的OA数据     库,运行程序,系统可以运行但是从数据库里面取出的数据全部显示成中文    字符:“靠” (注:监听是测试成功的,说明连接没问题)。               
方法三:把PHP程序所在的服务器上的数据库做成了oracle8.17,然后创建监听去连接    oa数据库所在服务器,成功。
问题:和上面的问题一、二,一模一样。我想问: 
    一:是不是PHP系统不支持oracle8.17?
    二:如果能支持oracle8.17的话,哪位大哥能指点一下,这个字符显示问题      到底应该咋解决?
    三:这到底是PHP系统的问题,还是oracle数据库的问题?
    四:我在想是不是oracle移植后,每次从数据库里面取出数据要把数据的字      符集在PHP程序里面转换一下,才能正确显示?    真诚感谢各位感兴趣的朋友的帮助!    滴水之恩当以泉相报!!!
        只要问题能解决分数没有上限

解决方案 »

  1.   

    以你的說明分析,你的PHP+oracle8.06上的PHP可以訪問PHP+oracle8.06和只安裝了oracle8.17的oracle資料庫,那麼你不需要用.dmp的形式來恢復oracle8.06中的資料庫,而直接用PHP程序來做.
    首先將oracle8.06中的資料庫內容取出並匯入到.sql中,然後通過.sql匯入到oracle8.17.good luck
      

  2.   

    就是用程序,将你PHP+oracle8.06中的资料表及内容全部取出来,做成.sql档案。
    让后通过该.Sql档案汇入到oracle8.17中。
    举个例子
    如果你有张表Table1,内容为USERNAME, PASSWODR, EMAIL....;
    那么.sql的档案就可以汇出为
    CREATE TABLE Table1(
    USERNAME CHAR(50) NOT NULL,
    PASSWORD CHAR(50) NOT NULL,
    email CHAR(30),
    PRIMARY KEY (USERNAME)
    );INSERT INTO Table1 (USERNAME, PASSWORD, email) value ("USER001", "PASS1", "EMAIL1");
    INSERT INTO Table1 (USERNAME, PASSWORD, email) value ("USER002", "PASS2", "EMAIL2");
    ......然后再通过执行这个.sql档案,将资料写入到oracle8.17中。
      

  3.   

    楼上的小人物大哥,你好,感激你的帮忙!你说的方法,当初我们也想过,不过现在oracle8.06的数据库太大了,有1.8G了
      email表就有上万条的记录,那样做是不是太费时间了。能不能再帮我想想,看看其他的方法呢。
      

  4.   

    把主要的放入数据库中,次要的用xml文件来保存,这样可以减少负担,同时也是结构更加清晰,容易管理
      

  5.   

    时间肯定要花上一点的,如果你不想汇出.sql也可以用实时操作的方式试试。
    就是同时操作两个资料库,边读取边汇入,做好LOG。
      

  6.   

    1 Oracle8.06与Oracle8.17的字符集要一致,要不然会乱码2 通过exp从oracle8.06导出数据,再到oracle8.17imp导入数据3 打开oracle8.17,查看导入完后的数据记录是正常还是乱码,如果乱码,说明是exp导出时字符集不兼容,要重设字符集。
      

  7.   

    楼上小人物兄,你说的:用实时操作的方式试试。
    就是同时操作两个资料库,边读取边汇入,做好LOG。我到是没试试,请具体指教, 谢谢!!!
      

  8.   

    楼主你能否贴出你的PHP的源程序我看看~
      

  9.   

    將oracle8.06的數據庫結構複製到oracle8.17;
    然後同時連接oracle8.06和oracle8.17;
    通過Select * from table 從oracle8.06的Table中取出資料;
    然後用遍歷的方式INSERT到oracle8.17,並記錄下來(或羅列出來)操作的數據。----建議一次只對兩個資料庫的同一張表操作。