21

私はT-SQLを何年も使用してきましたが、Oracleのもの、おそらく少なくとも自分の足が見つかるまでは単純なCRUD操作を作成する必要がある組織に移動しました。アプリケーション開発の観点から、既存のOracleデータベースと単に対話するだけでデータベースを一方から他方に移行するつもりはありません。T-SQLをOracleSQLに簡単に変換するために利用できるツールやユーティリティはありますか?キーワードマッパーは私が探しているものの一種です。

PS私はRTFMに怠惰ですが、それが私の役割の大きな部分になることはないので、私は少し速く私をスピードアップするために何かが欲しいだけです。

4

12 に答える 12

23

ここまで挙げた言語の違いは、論理的な違いに比べれば取るに足らないものです誰でも NVL を検索できます。調べにくいのは

DDL

SQL サーバーでは、いつでも、どこでも、ほとんどまたはまったく手間をかけずにスキーマを操作できます。

Oracle では、ストアド プロシージャでの DDL が好きではないため、フープをジャンプする必要があります。DDL 関数を実行するには、EXECUTE IMMEDIATE を使用する必要があります。

一時テーブル

SQL Server では、ロジックが少し難しくなった場合、SQL をショートカットして一時テーブルに解決し、その一時テーブルを使用して次のステップを実行するのが一般的です。MSSS を使用すると、これを非常に簡単に行うことができます。

オラクルでは、それは好きではありません。中間結果を強制することにより、オプティマイザーがショートカットを見つけるのを完全に防ぎます。しかし、途中で停止して中間結果を永続化する必要がある場合、オラクルは、その場でではなく、事前に一時テーブルを作成することを望んでいます。

ロック

MSSS では、ロックについて心配し、DML に適用する nolock ヒントがあり、ロックの数を減らすためのロック エスカレーションがあります。

Oracle では、これらについてそのように心配する必要はありません。

コミットされた読み取り

最近まで、MSSS は Read Committed 分離を完全に処理していなかったため、ダーティ リードが心配されていました。

オラクルは何十年もそのやり方でした。

MSSS には、ビットマップ インデックス、IOT、テーブル クラスター、単一テーブル ハッシュ クラスター、一意制約を強制する非一意インデックスの概念がありません。

于 2009-03-11T21:53:19.180 に答える
14

ほとんどの回答は、データベース全体の移行に焦点を当てているか、T-SQL と PL/SQL のいくつかの違いを指摘しているように感じます。私は最近同じ問題を抱えていました。Oracle データベースは存在しますが、T-SQL スクリプトの負荷全体を PL/SQL に変換する必要があります。

Oracle SQL Developerをインストールし、 Translation Scratch Editorを実行しました([ツール] > [移行] > [Scratch Editor])。

次に、T-SQL を入力し、ドロップダウン リストで正しい変換を選択して (デフォルトで「T-SQL から PL/SQL」に変換する必要があります)、それを変換します。

于 2011-11-15T14:19:07.497 に答える
4

私は言及する必要があります。

1) 私が Oracle 8 で作業していたとき、「@Result を選択する」ことができず、代わりに「デュアルから @Result を選択する」のようにダミー テーブルを使用する必要がありました。そのばかげたことがまだ存在するかどうかはわかりません。

2)オラクルの世界では、彼らはカーソルを愛しているようで、よく読んでください。彼らは常にカーソルを使用しています。

頑張って楽しんでください、

MS SQL とそれほど違いはありません。ありがたいことに、もうこれで作業する必要はなく、MS ツールの暖かい快適さに戻ってきました。

于 2010-04-18T20:26:56.903 に答える
3

ISNULL と NVL のナンセンスを COALESCE に置き換えると、T-SQL と PL/SQL で機能します。

于 2008-09-05T14:27:57.640 に答える
2

それらを前後にマッピングするのは簡単ではないので、それを自動的に行うツールがあるとは思えません。しかし、このリンクはあなたを助けるかもしれません:http: //vyaskn.tripod.com/oracle_sql_server_differences_equivalents.htm

于 2008-09-03T14:32:42.780 に答える
2

プレーンT-SQLの最も重要な違いは次のとおりです。

  • NVLはISNULLを置き換えます
  • SYSDATEはGETDATE()を置き換えます
  • CONVERTはサポートされていません
  • ID列はシーケンスに置き換える必要があります<-技術的にはT-またはPL/ではなく、SQLのみ

ノート。非推奨のSQLServer*=構文を結合に使用しないことを前提としています

@jodonell:リンク先のテーブルは少し古くなっています。9iがCASEやANSIの外部結合などをサポートした後、Oracleは標準に準拠するようになりました。

于 2008-09-03T14:52:21.313 に答える
2

SQLサーバーからOracleへの移行をいくつか行いました。バックエンド コードを書き直さずに移行する方法はありません。2 つのデータベースの間にはあまりにも多くの違いがあり、さらに重要なことには、プログラマーの 2 つのマインドセットの間に違いがあります。多くのマネージャーは、この 2 つは互換性があると考えています。SQL サーバーからストアド プロシージャをコピーし、オラクルでコンパイルするようマネージャーに依頼されましたが、手がかりではありません。Toad は、Oracle アプリケーションをサポートするための市場で最高のツールです。SQL 開発者は問題ありませんが、ヒキガエルに比べるとがっかりしました。オラクルがいつか彼らの製品をヒキガエルに追いつくことを願っていますが、まだそこにはありません. 良い一日を:)オラクルに移行する場合、それには理由があり、その要件を満たすためにバックエンドコードを書き直す必要があるか、多くの問題が発生する可能性があります。

于 2010-04-18T20:12:57.907 に答える
1

Oracle SQL Developer には、Translation Scratch Editor というツールがあります。[ツール] > [移行] から見つけることができます。

Oracle SQL Developer は Oracle から無料でダウンロードでき、簡単にインストールできます。

于 2010-12-20T14:11:39.933 に答える
0

2 つのバージョンをサポートしようとするのではなく、1 回限りの変換を行う場合は、Oracle Migration Workbenchを確認する必要があります。このツールは、Oracle の SQLDeveloper で動作します (Oracle を使用している場合は、これが必要です)。これにより、スキーマ、データ、および一部の T-SQL が PL/SQL に変換されます。両方をよく知っていたので、約 80% の仕事をしたことがわかりました。手順の大部分を変換し、残りの「より難しい」不明な部分を手動で変換する価値があるほど十分です。

于 2009-03-11T21:56:11.030 に答える
0

ここで、前後に変換することについて何人かの人々が言及しています。MSSQL から Oracle に変換するツールを知りませんが、無料の MS ツールを使用して Oracle データベースを MSSQL に変換したところ、問題なく大きなデータベースを変換できました。これは、MS も無料で提供している Access to MSSQL ツールに似ています。楽しみ

于 2010-04-18T20:31:08.893 に答える
0

安くはありませんが ($995)、このツールはうまく機能します: http://www.swissql.com/products/sql-translator/sql-converter.html

于 2009-11-06T07:30:24.867 に答える
0

jOOQ には公開されている無料の翻訳者がおり、こちらの Web サイトからアクセスできます: https://www.jooq.org/translate

DML、DDL、およびいくつかの手続き型構文要素をサポートしています。コマンド ライン経由でローカルで翻訳を実行する場合は、ライセンスを購入すると、コマンド ラインは次のように機能します。

$ java -cp jooq-3.11.9.jar org.jooq.ParserCLI -t ORACLE -s "SELECT substring('abcde', 2, 3)"
select substr('abcde', 2, 3) from dual;

参照: https://www.jooq.org/doc/latest/manual/sql-building/sql-parser/sql-parser-cli

(免責事項、私はベンダーで働いています)

于 2019-01-29T11:43:22.840 に答える