SqlServer到Oracle数据库转换手记
最近做了些数据库转换工作,主要是从Sql Server转换到Oracle,过程中遇到很多问题,现进行一个小小总结,方便有同样需求的朋友们。 需要对数据库结构、数据、自定义函数、存储过程等数据库元素进行转换,由于Sql Server和Oracle数据库语言本身的差异非常大,
最近做了些数据库转换工作,主要是从Sql Server转换到Oracle,过程中遇到很多问题,现进行一个小小总结,方便有同样需求的朋友们。
需要对数据库结构、数据、自定义函数、存储过程等数据库元素进行转换,由于Sql Server和Oracle数据库语言本身的差异非常大,所以自定义函数和存储过程的转换是比较困难的一件事情,市面上也很少有这方面的工具,几乎都想直接写工具了,后来却找到了个国外的一个叫做“SwissSQL-SQL Server To Oracle”这样的工具,此工具可以在http://www.swissql.com/站点上下载,使用方法有两种,一种是转换TSQL脚本到PLSQL,一种是通过JDBC连接到SQLServer数据库进行转换,转换后的结果都保存为PLSQL脚本,要导入Oracle需要运行这些脚本。此软件是用Java语言编写在安装之前必须先安装JDK,在试用过程中发现此工具存在这么几个问题:
1、此工具在转换数据结构的过程中把varchar的数据类型都转换成varchar2(1)了而不管原谅数据有多长统一都转换成1个长度,我不知道这么简单的BUG有没有其他设置的地方,反正后来我们没用它转数据结构也就没怎么研究了。
2、此工具为试用版本,我们也没找到注册版,而试用版只能前后转换共2000行SQL语句,而要购买这个软件也不太实际,费用高不说,还是外国的买起来也麻烦,软件为转换这么几个存储过程去耗费这么大的资金在我们这些用盗版的人看来是不可取的,我们的数据库对象那么多,显然这是不好办的问题,那么能否用欺骗的手法蒙混过关呢?下面就是具体的欺骗手法了:
-记得以前用过一个软件叫着“完美卸载”此软件可以记录安装程序时对磁盘进行的更改,有了这个我们就可以安装软件的时候记录好此软件对磁盘所写入的文件,看看有什么异样这样我们就能理解共享软件在那个文件写入了注册信息。
-通过跟踪发现在安装软件的时候,安装程序除了对安装目录写入信息和少量的注册表信息外没有对磁盘做任何更改,别急,我们继续跟踪,跟踪到第一次运行软件的时候,就有了异样,发现此软件在Windows目录下写入了这个文件,赶忙备份此文件,转换了几行语句后,关闭软件,果然此文件再次被修改,这就说明很有可能此文件就是记录的软件试用的行数。当我们第二次使用的时候把备份的文件覆盖了原文件,但此事软件所有按钮都禁用了,说明软件还有其他的地方可以判断用户是否使用过软件。重新安装软件(其实就是把安装目录里的文件重置一下),结果又可以使用2000行了。这就是软件欺骗的全部过程,也是可当作破解软件的土办法,只是麻烦一点的是需要先备份安装目录和那个dll文件,注意那个dll文件不能通用,必须要程序生成的本机的dll文件。当快要用完试用行数的时候通过覆盖文件的方式欺骗软件,从而可以继续试用,就这么简单。
另外在转换数据库的过程中应该还要注意以下几个问题:
-在Oracle数据库中命名不能大于30个英文字符,无论是表名、存储过程名等等,统统不能大于30个字符。
-在Oracle数据库中,存储过程的定义更侠义一些,而不像SqlServer那样开放。特别像返回结果集这些操作上存在很多差异,在SQLServer可以直接试用select语句返回结果集,而Oracle只能把存储过程封装到包中设置Out参数的Cursor数据类型来达到返回结果集的目的,在存储过程内部不能直接试用Select语句返回结果集,很是不便。
-在使用单纯的SQL语句的时候,如果是多条语句,调用Oracle数据库就必须封装在begin/end语句块中。
-手动对Oracle数据库查询时可以选用PL/SQL Developer这个工具,蛮好用的。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

SQLステートメントは、Oracleの動的SQLを使用して、ランタイム入力に基づいて作成および実行できます。手順には、次のものが含まれます。動的に生成されたSQLステートメントを保存するための空の文字列変数を準備します。 executeを即座に使用するか、ステートメントを準備して、動的なSQLステートメントをコンパイルおよび実行します。バインド変数を使用して、ユーザー入力またはその他の動的値を動的SQLに渡します。実行するか、実行するか、動的SQLステートメントを実行します。

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

AWRレポートは、データベースのパフォーマンスとアクティビティスナップショットを表示するレポートです。解釈の手順には、アクティビティスナップショットの日付と時刻の識別が含まれます。アクティビティとリソース消費の概要をご覧ください。セッションのアクティビティを分析して、セッションの種類、リソース消費、待機イベントを見つけます。遅いSQLステートメント、リソース競合、I/Oの問題などの潜在的なパフォーマンスボトルネックを見つけます。待機イベントを表示し、パフォーマンスのためにそれらを特定して解決します。ラッチとメモリの使用パターンを分析して、パフォーマンスの問題を引き起こしているメモリの問題を特定します。

Oracleのソリューションを開くことはできません。1。データベースサービスを開始します。 2。リスナーを開始します。 3.ポートの競合を確認します。 4.環境変数を正しく設定します。 5.ファイアウォールまたはウイルス対策ソフトウェアが接続をブロックしないことを確認してください。 6.サーバーが閉じているかどうかを確認します。 7. RMANを使用して破損したファイルを回復します。 8。TNSサービス名が正しいかどうかを確認します。 9.ネットワーク接続を確認します。 10。Oracleソフトウェアを再インストールします。

Oracle Cursorの閉鎖問題を解決する方法には、次のものが含まれます。 Scopeが終了した後に自動的に閉じるように、for update句のカーソルを宣言します。使用句のカーソルを宣言して、関連するPL/SQL変数が閉じられたときに自動的に閉じるようにします。例外処理を使用して、例外の状況でカーソルが閉じていることを確認します。接続プールを使用して、カーソルを自動的に閉じます。自動送信を無効にし、カーソルの閉鎖を遅延させます。

Oracleのすべてのデータを削除するには、次の手順が必要です。1。接続を確立します。 2。外部のキーの制約を無効にします。 3.テーブルデータを削除します。 4.トランザクションを送信します。 5.外部キーの制約を有効にします(オプション)。データの損失を防ぐために、実行前にデータベースを必ずバックアップしてください。
