タグ付けされた質問 「oracle」

Oracleデータベースのすべてのバージョン。質問でそのコンテキストが重要な場合は、oracle-11g-r2のようなバージョン固有のタグを追加します。アプリケーションやミドルウェアなどのOracle製品や、MySQLやBerkeleyDBなど、Oracleが所有するその他のデータベース製品には使用しないでください。

2
表スペースからの論理スペースのリカバリー
DATAと呼ばれるテーブルスペースがあり、自動拡張がfalseに設定されています。このテーブルスペースには2つのデータファイルがあり、350 GBの物理スペースを使用するように設定されています。 1週間前、私はuser_tablespacesとdba_data_filesにクエリを実行したところ、利用可能な論理スペースが20%あることに気付きました。次に、クリーンアップを続行し、このテーブルスペースのテーブルから多くのレコードを削除しました。利用可能なスペースが大幅に増えると予想していました。残念ながら、ビューを照会したところ、使用可能なスペースが20.5%になりました。 これはデータの断片化が原因である可能性がありますか?どういうわけかテーブルスペースを「デフラグ」して、失われたスペースを回復できますか?または、テーブルスペースを最初から再作成する必要がありますか?

3
Oracleでsequence.nextvalをnullにするにはどうすればよいですか?
私はそのように定義されたOracleシーケンスを持っています: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; ストアドプロシージャでレコードを挿入するために使用されます。 PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; -- Line …
11 oracle  sequence 

2
オブジェクトテーブルに存在しないように見えるオブジェクトを見つけるにはどうすればよいですか?
というオブジェクトがありますcot_ntn_pi_v。これは同義語だと言われました。all_synonymsテーブルには表示されません。ビューまたはテーブルのように見えますが、すべてのオブジェクトのテーブルにはありません。そこから選択できますが、「存在しない」ためドロップできず、「この名前はすでに別のオブジェクトで使用されています」と同じ名前で新しいテーブルを作成できません。 私は怒っていますか、それとも本当に愚かなことをしていますか?

1
任意のクエリで使用できる並列度(DOP)を制限する
Oracle Exadata(11gR2)では、データベースは比較的頑丈です。 cpu_countは24です parallel_server_instancesは2です parallel_threads_per_cpuは2 Oracle Enterprise Manager(OEM)での観察により、クエリが連続して実行されるためパフォーマンスがひどいことに気付きました。これを解決するために、すべてのテーブル、マテリアライズドビュー、およびインデックスが、並列処理を利用するように変更されました。例えば: ALTER TABLE SOME_TABLE PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT); 並列化をオンにするようにシステムが変更されました。 ALTER SYSTEM SET PARALLEL_DEGREE_POLICY = 'AUTO'; これによりパフォーマンスが向上しましたが、1つのクエリでDOPが96(利用可能なすべてのリソース)になることがOEMで時々観察されました。これにより、後続のクエリが1のDOPにダウングレードされました(並列化なし)。クエリの処理が完了するまでパフォーマンスが低下します。 これを解決するために、クエリで利用できるDOPを次のように制限しようとしました。 ALTER SYSTEM SET PARALLEL_DEGREE_LIMIT = 24; これは効果がありませんでした。制限(通常は48または96ですが、実際のパターンはありません)を超えるクエリを頻繁に確認します。 単一のクエリが使用可能なすべてのリソースを占有するのをどのように防ぐことができますか?

1
PLS-00306エラー:間違った引数を見つける方法は?
PLS-00306: 'string'へのコールで引数の数またはタイプが間違っています 原因:このエラーは、名前付きサブプログラムの呼び出しが、そのサブプログラム名の宣言と一致しない場合に発生します。サブプログラム名のスペルが間違っているか、パラメータのデータ型が間違っているか、宣言に誤りがあるか、宣言がブロック構造に正しく配置されていない可能性があります。たとえば、このエラーは、組み込み平方根関数SQRTが、スペルの間違った名前または誤ったデータ型のパラメーターで呼び出された場合に発生します。 処置:サブプログラム名の綴りと宣言を確認してください。また、呼び出しが正しいこと、パラメータが正しいデータ型であること、組み込み関数でない場合は、宣言がブロック構造に正しく配置されていることを確認してください。 どうすれば間違った引数をすばやく特定できますか? 何十ものパラメータを持つストアドプロシージャがあります。使用された手順と定義された手順の違いを確認する簡単な方法はありますか?行ごとにチェックしたくない。

1
スキーマ内のテーブルサイズを見積もる方法(Oracle)
スキーマ内のテーブルサイズ(MB単位)を推定しようとしています。これは私がこれまでに持っているものです: SELECT table_name, owner, last_analyzed FROM all_tables 私はSQLにかなり慣れていないので、どうすればこれを回避できるかわかりません。 ありがとうございました。
11 oracle 

4
異なる文字セットが原因のOracleインポートの問題
Oracle 11のエクスポートをOracle 11 XEにインポートしようとしています。 次のメッセージが表示されます。 XEでのインポートfehlerhaftインポートはWE8MSWIN1252文字セットで行われ、AL16UTF16 NCHAR文字セット インポートサーバーはAL32UTF8文字セットを使用します(可能な文字セット変換) アイデア、このダンプをOracle 11 XEにインポートする方法を教えてください。 編集: テーブルを考える CREATE TABLE BDATA.Artikel( Key VARCHAR2(3) NOT NULL, Name VARCHAR2(60) NOT NULL, Abkuerzung VARCHAR2(5) NOT NULL ); このようなエラーが発生します IMP-00019: row rejected due to ORACLE error 12899 IMP-00003: ORACLE error 12899 encountered ORA-12899: value too large for column "BDATA"."ARTIKEL"."ABKUERZUNG" …
11 oracle  import 

2
大規模なデータ移動
何十億もの行をschema1.table1から新しいschema2.table2に移動したいと思います。table2はtable1からリファクタリングされたものです。したがって、それらのテーブル構造は異なります。table1とtable2の両方がパーティション化されていますが、table2は空です。これらのスキーマは両方とも同じOracle DBにあります。このデータ移行を実行するためのパフォーマンス効率の良い方法は何ですか?最後にのみコミットを実行しますか、それとも増分コミットを選択しますか?つまり、数時間かかったジョブの99%を完了した後にデータの移行が失敗したとしましょう。今ロールバックしますか?増分コミットを行う場合、どのように失敗を処理しますか?
11 oracle 

4
Oracleのテーブルのインデックスによって消費されている実際のスペースを見つける方法は?
Oracle 10gのテーブルのインデックスによって消費されている実際のスペースを見つけたいです。オラクルが将来使用するために予約したスペースを含めるつもりはありません。(Oracleによるオーバーヘッドは考慮すべきではありません。)割り当てられたバイトではなく、使用されたバイトが欲しいです。 今後のお手伝いをお願いします。 また、テーブルの長いフィールドの実際のサイズを見つける方法はありますか。 PS:vsize()およびdbms_lob.getlength()は機能しません。

2
ストアドプロシージャを使用して別のデータベースに接続する方法
外部データベースからいくつかのデータを取得し、それを別のデータベースで計算する必要があります。ストアドプロシージャから外部データベースに接続することはできますか?みんなありがとう。 PS。 Oracleを使用していて、両方のデータベースが同じサーバーにあります。

2
PL / SQLブロックに直接ddlステートメントを記述できないのはなぜですか
なぜPL / SQLブロックに直接ddlステートメントを書き込めないのか、たとえば、 CREATE OR REPLACE PROCEDURE test IS BEGIN truncate table table_name; // error END test; / だが、 CREATE OR REPLACE PROCEDURE test IS BEGIN execute immediate 'truncate table table_name'; // works fine END test; / なぜ2番目が正常に実行されたのですか?
11 oracle  plsql  ddl 

1
Oracle SQL Developerでのクエリ実行時間
set timing onクエリの実行が完了してから、クエリの実行にかかった時間を確認できることを知っています。 しかし、クエリの実行中にOracle SQL Developerで現在の実行時間を確認することはできますか? SQL Server Management Studioと古いクエリアナライザには、次のような機能があります。
11 oracle  tools 

3
非IT担当者向けのデータベースステージング環境
現在、データベースステージング環境をIT部門に提案しています。アイデアは、私のような非IT担当者(公共事業データアナリスト)がソリューションをテストする場所を持ち、自分で実際の環境に実装するか、必要に応じてITに実装を依頼するというものです。この環境が有益である理由/シナリオはいくつかあります。 私は(私たちのライブデータベース環境でいくつかの基本的なデータベース権限を持っているcreate table、create viewなど)。スキーマの変更は約1週間に1回行いますが、これらの変更を実際の環境でテストして実装するのは、私には異常です。データベースには無数の依存関係があるため、問題が発生した場合は悲惨なことになる可能性があります。むしろ、別の環境で事前にテストしておいたほうがいいです。 私のような、より高度な権限の一部はありませんcreate triggerか、create functionライブデータベース内を。これは問題ありませんが、トリガーや関数によって解決できる問題がいくつかあります。いくつかのアイデアを開発およびテストできるように、ステージング環境でこれらの権限を付与することを提案し、それらが機能する場合は、ITがそれらをライブ環境に実装することを提案します。 一般に、私のIT部門には、ソリューションを開発するための時間やリソースがありません。とても簡単です。ですから、私が自分でレッグワークを行うことができれば、私の問題ははるかに解決されるでしょう。 「非IT担当者向けのステージング環境」は、私にとっては十分に健全なアプローチのように思えますが、正直に言って、考えをまとめただけです。IT /データベースの世界でこれがどのように一般的に行われるのか私にはわかりません。 このシナリオに当てはまる確立されたIT /データベースプラクティスはありますか?(非IT担当者向けのデータベースステージング環境を提案するときに、私は正しい軌道に乗っていますか?)

6
Oracle 12c作成ユーザー
Enterprise Oracle Database Systemでのユーザーの作成に問題があります。のようなコマンドを使用してユーザーを作成できませんでした create user name identified by password; 例外のため: ORA-65096:無効な共通ユーザーまたはロール名 だから私はグーグルで解決策を見つけました: alter session set container=PDBORCL; そしてその後-仕事です。ユーザーが作成されました。 しかし、私はこのアカウントにログインできません。なにが問題ですか?このアカウントにすべての特権を追加します(もちろん、CREATE SESSIONも追加します)。エラーが発生しました: ORA-01017:ユーザー名/パスワードが無効です。ログインが拒否されました。 一体何が起こっているのですか?

1
テーブルが存在するのに「ORA-00942:テーブルまたはビューが存在しない」を取得する
私はOracleデータベースにかなり慣れていません。にインストールしOracle Database 11g R2ましたOracle Linux 6。私は正常に新しいデータベースを作成し、それdbcaを使用してデータベースに接続しました: $ sqlplus "/ as sysdba" 私は正常にテーブルを作成し、いくつかのデータを挿入して、いくつかの選択を実行しました: SQL> CREATE TABLE Instructors ( tid NUMBER(7) PRIMARY KEY, fname VARCHAR2(32), lname VARCHAR2(32), tel NUMBER(16), adrs VARCHAR2(128) ); Table created. SQL> INSERT INTO Instructors (tid, fname, lname, tel, adrs) VALUES (8431001, 'John', 'Smith', 654321, 'London'); 1 row created. …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.