• 締切済み

カラム位置変更

Orcle SQL DeveloperでColumnsタブのEdit画面で カラム位置を変更するボタンがあるのですが、 Dsiabledになっているため使えません。 昔のRaptor時代は使えたような気がするのですが、 使えている方はいらっしゃいますか? また、この機能による内部的に発行しているSQL文とは どのようなものなのでしょうか。 おそらくカラム位置を変更するOracle10g専用のクエリー があると思われるのですが…もし、知っていたら教えて下さい。 よろしくお願いします。

  • Oracle
  • 回答数2
  • ありがとう数2

みんなの回答

回答No.2

オラクルからカラムの順序を変更する機能を 積極的にリリースするとは残念ながら あまり考えられません。 といいますのもオラクルとしては 表に対してアクセスする場合に select * from table_name; という方法はあまり推奨してないからです。 オラクル(に限らずどこのDBベンダでもそうだと思いますが)が推奨しているのはおそらく select col1,col2,col3,col4 from table_name; という方法です。 これであればSELECT文を select col1,col3,col2,col4 from table_name; と書き直してやるだけでcol2とcol3が入れ替わった ことになります。 なぜ、*でのSELECTを推奨していないかというと テーブルのカラム追加、削除を行った場合に SQL文まで書き直す必要があるからです。 *で記述すると「col1からcol4の4つを取ってきて、その 2番目にcol2が3番目にcol3が入っている」という前提で SELECT文を実行する必要があるのでテーブルのカラムの順序がcol2とcol3で入れ替わったり、 col5が追加されたときなどに従来のSELECT文では対応できななります。 それに対して select col1,col3,col2,col4 from table_name; などとSQLを記述しておくとカラムの順序が入れ替わろうが、カラムが追加されようが カラム名やテーブル名が変わらない限りはSQL文を書き直す必要がありません。 同様の理由でINSERT文も insert into table_name values (...); ではなく、 insert into table_name (col1,col2) values (...); という記述が推奨されています。

KaZtoYou
質問者

お礼

whiteline507さんの仰りたい事は良く分かります。 ありがとう御座いました。

回答No.1

Developerについては分からないのですが 少なくともテーブル内カラム順序を変更するSQL文はありません。 Developerなどでもし使えたとしても 内部的に置き換えた後にSQL文としてテーブルに格納、参照しているかと思います。 どうしてもカラムの順序を入れ替えたいのであれば create table bbb as select col2,col1 from aaa; drop table aaa; alter table bbb rename to aaa; などといったん別テーブルに順番を置き換えて出力したあとに元のテーブル名に戻すしかないと思います。 (注:一時的に倍の容量が必要になります。 また、インデックスなども張りなおす必要があります)

KaZtoYou
質問者

お礼

ご回答有り難う御座います。 カラム順序を変更するのにそのような手順が必要なのは残念ですが、 Oracle SQL Developerにてその辺がインデックス再構築も含め 自動化されているのなら手軽にはなるんですけどね。 日本のOTNにもリリースされたようですが、相変わらず機能しません^^; もしかしたら、何か条件があるのかもしれませんね。 P.S Oracle SQL Developerを見て将来的にクエリー1つで行えるようにする方向性はあると期待しています。

関連するQ&A

  • 行情報だけが欲しい(カラム名いらいない)

    set(確かOracleだと)などを使って、カラム名とあとカラム名と行の間の-------を省く方法を教えて下さい。 実行の結果だけが欲しいのです。 あと、SQL実行結果のフィールドサイズ(カラムサイズ)を変更できませんか? SET TEXTSIZEだとvarcharが変えられいみたいです。何卒よろしくお願いします。

  • カラムの削除が出来ません

    Microsoft SQL2000を使用しているのですが あるテーブル(table_A)のカラム(column_A)を削除したいので 以下のようなクエリ及び、GUIでの削除を実行しました。 ----------------実行クエリ----------------------- ALTER TABLE dbo.table_A DROP COLUMN column_A GO ------------------------------------------------- ところがどちらの削除を方法を実行しても以下のようなエラーメッセージが返されます。 -----------------エラーメッセージ---------------- テーブル 'table_A' - テーブルを修正できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server] 行 2: 'column_A' の近くに無効な構文があります。 ------------------------------------------------- カラム名の変更などはできるのですが どうしても削除だけ出来ません。 なお、このカラムは主キーとしての設定や 他のテーブルへの外部キーとしての設定を行っていません。 型は[varchar] (20) COLLATE Japanese_BIN NULLです。 どなたか対処方法をご存知の方がおられましたら ご回答よろしくお願いします。 それでは失礼します

  • vb.net datagridviewの列位置変更

    vb.net datagridviewの列位置を変更する方法を教えて下さい。 データグリッドビューにDataTable(DBから抽出したデータ)を割り当てました。 DataGridView1.DataSource = DataTable1 ここに、カラムを追加しました Dim column As New DataGridViewButtonColumn() '列の名前を設定 column.Name = "Button" '全てのボタンに"詳細閲覧"と表示する column.UseColumnTextForButtonValue = True column.Text = "詳細閲覧" 'DataGridViewに追加する DataGridView1.Columns.Add(column) この追加したカラムを一番左に表示したいです。

  • 【ORACLE】SQLPLUS【HADING変数】

    LinuxOS上(CentOS 5.6)上でOracleの11gR1を使っています。 データベースにアクセスする際にSQLPLUSを使っているのですが、テーブル表示の際にコラムのタイトルが表示されなくなってしまいます。 例: 11:07:07 ORACLE > SHOW HEADING heading ON 11:07:16 ORACLE > SELECT * FROM EXAMPLE; 1||ONE                       ← コラムのタイトルが表示されない 2||TWO 3||THREE ※ORCLE_HOME/sqlplus/admin/login.sqlにてそれぞれTIMEをON, PROMPTを” ORACLE > ”、セパレーターを”||”に変更してあります。 またsqlplus -R 3 (ファイルシステムの変更を禁止するレベル)で入り、パラメーター関連を読み込まない状態では、 SQL> select * from example; COLUMN_01 COLUMN_02 ---------- ---------- 1 ONE 2 TWO 3 THREE SQL> show heading heading ON とちゃんと表示されます。 インターネットをいろいろ調べていてもHEADINGのパラメーターをONにするぐらいしか見つからず、途方にくれております。 実務に致命的な支障はないのですが、「このテーブルなんだったっけな」と確認したい時にわざわざ「DESC」コマンドを打たなくてはなりません。 是非タイトルを表示できるようにできないでしょうか。 おわかりになる方、同じことを経験された方、どうぞよろしくお願い致します。

  • カラム名がcurrent_dateのテーブルselectがエラーになる

    テーブル:test_tableにカラム:current_dateが存在するとします。 ここで、以下のようにSELECT文を発行します。(isqlでクエリーを発行します。) > SELECT CURRENT_DATE FROM test_table すると、以下のようにエラーが返ってきます。 > キーワード 'current_date' 付近に正しくない構文があります。 おそらくCURRENT_DATEはシステム予約語のため、このようにエラーになるのだと思いますが、そのようなケースではどのようにSQLをコーディングすればエラーにならずに結果を取得できるのでしょうか?

  • SQL Developerでクエリ実行

    select * from テーブルA where カラムA2 = :バインド変数 select * from テーブルB where カラムB2 = :バインド変数 SQL Developerでエディタに記述した複数のSQLを一度に実行する際に ①同じ名前のバインド変数であっても何度も値を聞いてくるのを1回で済ませたい ②SQLごとにひらく問い合せ結果について名前が問い合せ結果1、問い合せ結果2だとわかりづらいので、固有の名前をクエリ実行時に自動でつけるようにしたい よろしくお願いします。

  • 項目長変更後の処理について教えてください。

    項目名:コード varchar (3) を "ALTER TABLE テーブル名 ALTER COLUMN コード varchar (4);"を実行し 項目名:コード varchar (4)へ変更したいと思っています。 そこで質問なんですが現在コード の内容が"001"のような3桁なのですがそれを"0001"のように4桁に変更したいのです。(頭に"0"を追加する。) (一見づつ読んで更新していく方法はわかりますがもう少しスマートに処理がしたいので) どういったSQL文を発行すれば良いのでしょうか? よろしくお願いします。

  • Accessから”表名.カラム名”でデータが取り出せない

     Java(sdk1.4.2)よりSQLを発行し、Access(2002)のMDBを操作しています。 複数テーブルをJoinで接続し、データを抽出しているのですが、対象2テーブルに同じ"haneibi"と云う項目が有るので、レコードセットからの取り出し処理の際に” wk_T1haneibi = rs.getString("表名.haneibi”)と云う記述をした所、SQLException Column Not Foundで処理が終了してしまいます。 wk_T1haneibiはStringで、haneibiも文字型のデータが入っています。 過去、表名.カラム名で修飾をした際、同じ事態に陥り、ユニークなカラム名だったので表名の修飾を外した所、事態が解消しました。今回は重複名を変更出来ない為、安易な回避が出来ず困っております。 尚、Joinのパラメータでは”表名.カラム名”の修飾が何故か問題なく出来ています。 事態解消にお手をお貸し下さいまし。

    • ベストアンサー
    • Java
  • My Documentのフォルダ名が変更できません

    My Document内のフォルダを整理しようと思い、ファイル名を変更することにしました。 ところが、変更しようとすると 「ファイルまたはフォルダ名の変更エラー」ダイアログが出て「○○の名前を変更できません。アクセスできません。 ディスクがいっぱいでないか、書き込み禁止になっていないか、またはファイルが使用中でないか確認してください。」とメッセージが出ます。 ハードディスクは一杯ではないし、そのフォルダも、内部のファイルも開いてはいません。 「プロパティ」を見ると「全般」タブの「属性」にある「読み取り専用」チェックボックスに色がついています。それを変更しようと試みるのですが、読み取り専用のチェックをしても、そのチェックを外してもフォルダ名を変更することができません。 フォルダ名を変更するよい方法がございましたらお教え下さい。よろしくお願いします。

  • ORACLE SQL DeveloperでのDBへの接続でORA 01017エラー

    私は今、ORACLE 10g Express Editionをインストールして、 操作を試しています。 データベースのホームページにて、新しく"ORAUSER"という名前のユーザーを作成し、すべての権限をチェックし、同ユーザーでデータベースのホームページに再ログインすると、正常にログインできます。 SQLPLUSを起動して、作成した"ORAUSER"でCONNECTコマンドを発行しても正常に接続できます。 ただ、Oracle Sql Developerを利用して接続するとORA 01017エラーになってしまいます。 同ツールを利用してSYSユーザーで接続した場合は、正常に接続できます。 なんども試した為、パスワードの記述に間違いは無いとおもうのですが、 何か問題があるのでしょうか。 ご教授よろしくお願い致します。 環境 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product Oracle SQL Developer Version 1.2.1 Build MAIN 32.13 OS Windows XP Home Edition