• ベストアンサー

&文字の変更

オラクルデータベースのテーブルに&記号を含むデータを投入しようとすると(具体的には、P&Hのような会社名:company.name)、「hに値を入力してください」といわれ、INSERTができません。&をSQLファイルからSQL*Plus経由で流し込む方法があったら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Senna_FF
  • ベストアンサー率45% (153/334)
回答No.2

SQL*Plusにおける「SET」コマンド系はセッションを問いません。 一度発行すれば、SQL*Plus使用中(これをセッションと呼べばセッションなんですが・・・) は、再設定の必要はありません。 ただし、SQL*Plus再起動時には再度設定する必要があります。 (SQL*Plus起動時の、デフォルト値とする方法もあるのかもしれませんが、わかりません。私は起動時にスクリプト流してます。)

sharat2005
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Senna_FF
  • ベストアンサー率45% (153/334)
回答No.1

「SET DEFINE OFF」を使用します。 ここの一番下を参照してください。 http://homepage2.nifty.com/BASH/oracle/sqlplus_tech.html

sharat2005
質問者

補足

&はオラクルではdefine文字として利用されているのですね。データを流しむセッションを終了するときに、define文字を再び有効化する必要はあるのでしょうか。それともSET DEFINE OFFはセッション終了とともに、無効になるのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字化け

    ORACLE(UNICODE)に対し、 SQL*PLUSから、(test.sql等)ファイルから insert文で'(1)'とう文字を入力しようとすると、 文字化けが発生します。 1)ORACLEにUNICODEで'(1)'という文字は登録可能でしょうか? 2)もし可能なら、どのような方法で可能でしょうか?(SQL*PLUSで) 以上、お願い致します

  • INSERT INTOに関しまして。

    $sql = "INSERT INTO テーブル名(name,day,kg)VALUES('','$day','-1')"; 現在このようなSQL文でINSERTしていますが、データベース内にあるカラムname全てに対してINSERTするにはどうすれば良いでしょうか??現在のSQL文ではそれができず、nameが空欄の状態で更新されてしまいます。

    • ベストアンサー
    • PHP
  • phpMyAdminで文字化け

    下記の質問者と同じ状態「UTF8のPHPコードから日本語をINSERTするとphpMyAdmin上で文字化けしてしまう」になっています。 http://oshiete.nikkeibp.co.jp/qa3749280.html?ans_count_asc=1 そこでinsertの前に    $sql = 'set names utf-8';    mysql_query($sql); を挿入したいのですが、どこにどのように挿入したらいいのかわかりません。私の場合は以下のどこに挿入すればいいのでしょうか? // SQL実行 function db_query($sql, $conn) { $res = mysql_query($sql, $conn); return $res; } ~中略~ $sql = "INSERT INTO table1 ("; $sql .= " name, "; $sql .= " address, "; $sql .= " date "; $sql .= ") VALUES ("; $sql .= "'" . $name . "',"; $sql .= "'" . $address . "',"; $sql .= "'" . $date . "'"; $sql .= ")"; $res = db_query($sql, $conn); if ($res) { return "<p>成功</p>"; } else { return "<p>失敗</p>"; }

    • ベストアンサー
    • PHP
  • SQL*Plus以外で値を一覧できるツール

    SQL*Plus以外で値を一覧できるツールを探しています。 Oracle SQL Developer や MS-Access、ObjectBrowserなどが無い環境でも、 Oracleのディクショナリビュー含めて値を見たり、 外部キーを見たり、他を見たりして、 ER図を見ているかの如く、さっと対象を選択できるようなツールがあれば、 教えていただきたいと思います。 結局は、SQL*Plusで値を見て判断するしかないでしょうか? 「動かしてみて、実行計画を見る」とかしかないでしょうか? よろしくお願いいたします。 OpenOffice(のデータベース)が Oracle社のものになってから結構使えるようになっていたりするでしょうか。

  • カラム名の出力

    データベース:ORACLE 使用ソフト:sql/plus select文でテーブルのカラム名のみを出力したいのです。 教えてください。

  • Oracle8でテーブルの列名を変更したい

    Oracle8のテーブルを利用しているのですが、あるテーブルの列名が 誤っていることに気付きました。データはそのままで列名だけ変更したい のですが、できるのでしょうか?できるのでしたら、方法を教えていただけ るとありがたいです。OracleやSQL関係の本を読んでみたのですが 探し出せませんでしたので、こちらでお世話になることにしました。 よろしくお願いします。(私自身はOracleは利用するのみで、ほとんど 素人に近いです。SQL*Plusは使ったことがあります。)

  • データベースに変数の値を挿入

     HTMLのフォームから、getParameterで取得した値(id,name,club)をデータベースに挿入したいのですが、 String sql="insert into test_table values(id,name,club)";  と記述してもその文字列がそのままテーブルに反映されてしまいます。  もちろん、 String sql="insert into test_table values('12','●田○郎','野球部')"; とあらかじめ記述しておけばこのデータがテーブルに挿入されるのですが・・・。  PHPでは確かvalues('{$id}','{$name}','{$club}')のように記述すればできたので戸惑っています。  JAVAでSQL文に変数を含める場合、どのように記述すればいいのでしょうか?

    • ベストアンサー
    • Java
  • PHP+MySQLでのINSERTについての質問です。

    insert.html(入力フォーム)で <input type="text" name="company_nm" size="80"> を <form name="form1" method="post" action="insert_kakunin.php"> <input type="submit" value=" 次 へ "> で送って insert_kakunin.php(確認画面)で <input type="hidden" name="company_nm" value="<?= $company_nm ?>"> <?php print $_POST["company_nm"]; ?> で表示させます。 それを <form name="form1" method="post" action="insert.php"> <input type="submit" value=" 決 定 "> で insert.php(DB処理)で DB接続した後に $sql='INSERT INTO Sample (company_nm) VALUES("'.$_POST['company_nm'].'"); というふうにINSERTしたいんですが、VALUESに入力した値が入りません。 print $sql; print ($_POST['company_nm']); で見ても「""」となっています。 値の渡し方を教えてください。

    • ベストアンサー
    • PHP
  • SQL*Plus以外で値を見れるツール

    Oracle SQL Developer や MS-Access が無い環境でも、 Oracleのディクショナリビュー含めて値を見たり、 外部キーを見たり、他を見たりして、 ER図を見ているかの如く、さっと対象を選択できるようなツールがあれば、 教えていただきたいと思います。 結局は、SQL*Plusで値を見て判断するしかないでしょうか? 「動かしてみて、実行計画を見る」とかしかないでしょうか? よろしくお願いいたします。 OpenOffice(のデータベース)が Oracle社のものになってから結構使えるようになっていたりするでしょうか。

  • 1つのテーブルから複数のテーブルへのデータ振分け

    MySQLを使用して、tableAというテーブルのデータを tableB,tableC,tableDというテーブルに振り分けたいと思っています。 1日1回、自動的に行いたいと思っています。 たとえば、tableAのテーブル構成が下記のようなもので ================== name sex birth address phone email company ================== name,address,phoneはtableBに name,sex,birthはtableCに name,companyはtableDに分けるというような イメージです。 私の考えでは、下記のようなSQL文をPHPから呼び出して、タスクで 実行させてそれぞれ別のテーブルに振り分けようと思っている のですが、、もっと良いツールや方法があればお教えいただけ ませんでしょうか。 宜しくお願いいたします。 ---------------------------------------------------------------------------------------------------- INSERT INTO tableB (name,address,phone) SELECT tableA.name,tableA.address,tableA.phone FROM tableA AND INSERT INTO tableC (name,sex,birth) SELECT tableA.name,tableA.sex,tableA.birth FROM tableA AND INSERT INTO tableD (name,company) SELECT tableA.name,tableA.company FROM tableA; ----------------------------------------------------------------------------------------------------