• ベストアンサー

PL/SQLの変数について

困っています。 ホスト引数で :NAME = "あいうえお" としてoracleに渡し、 PL/SQLでNAMEという変数で受け取った後、 Xという変数にその"あいうえお"を'あいうえお' のように、シングルクォーテーションで囲んで入れたいのです。 ですが、 NAME = 'X' としたら文字列として認識してしまい、 NAME = ''X'' としたらPLS-00103のエラーが出てしまいます。 シングルクォーテーションで囲んだ文字列を変数にセットする場合はどのように書いたら宜しいのでしょうか??

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

シングルクォーテーションをリテラルとして指定する場合は、シングルクォーテーションを重ねて記述します。 つまり、「''」でシングルクォーテーション1つ分になります。 以下、サンプルプログラムです。 SQL> CREATE TABLE sample ( id number, value varchar2(10) ); Table created. SQL> INSERT INTO sample VALUES (10, ''''); 1 row inserted. SQL> SELECT * FROM sample; id value -- ----- 10 '

noname#15844
質問者

お礼

回答ありがとうございました~^^ サンプルプログラムまで作成していただいて感謝です。

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

その他の回答 (1)

  • guest98
  • ベストアンサー率23% (4/17)
回答No.1

NAME := '''' || X || ''''; で可能だと思いますよ。

noname#15844
質問者

お礼

回答有難うございました~^^

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

関連するQ&A

  • PL/SQLの初歩的な質問

    失礼します。 PL/SQLについて、初歩的な質問をさせてください。 DBに以下のような文字列が入っていて、 それを抽出し変数にセットするとします。 A'1234567'→変数aにセット B'  12A345B'→変数bにセット 質問1 Aの文字列を取得した際、'123-4567'のように 間にハイフンを付けて変数aにセットする場合 どのようなPL/SQLの記述になりますか? 質問2 Bの文字列を取得した際、'12345'のように 左側の空欄と数字以外の文字を取り、 なおかつ数字を半角にして変数bにセットする場合 どのようなPL/SQLの記述になりますか? お手数お掛けしますが ご回答宜しくお願いします。

  • PL/SQLのグローバル変数保持期間

    PL/SQLのグローバル変数の保持期間についての質問です。 例えば、 パッケージA、 パッケージBが あったとします。 パッケージBには グローバル変数BH、 ファンクションBF があります。 パッケージAからファンクションBFを呼び出します。ファンクションBFの処理で、グローバル変数BHに文字列"こんにちは"をセットします。 ここからです。パッケージAからグローバル変数BHを使用するとき、文字列"こんにちは"は保持されたままなのでしょうか? ファンクションBFで戻り値、又はOUTで呼び出し側パッケージAに返せばいいのですが、訳ありでできません。 このような状況なので、パッケージBのグローバル変数を見ようと考えています。 ファンクションBFは共通関数なので、BFの処理でBHにセットせず、ファンクションAのグローバル変数にセットすることもできません。 ファンクションBFは色々なファンクションから呼び出されているためです。 Java等はインスタンスの概念があるので、上記のような処理は問題ないのですが、PL/SQLでこのような方法は可能でしょうか? 皆さん、お忙しい中申し訳ございませんが、よろしく お願いします。 又、他に良い方法がありましたら、アドバイスお願いします。

  • オラクル(PL/SQL)のエラー

    いつもお世話になります。 オラクル・バージョン8.1.5を使用しています。 PL/SQLを実行すると以下のエラーが発生します。色々調べたのですが、解決しません。 なぜでしょうか?(ロジックがここでは書けないので、エラーのみ記載致します) ORA-06550:行1、列19:*PLS-00103: Encountered the symbol "." when expecting one of the following・・()-+mod この後ろは読めませんでした。 また、PL/SQLを実行したりするには、ただ単にオラクルをインストールしただけでは駄目なのでしょうか? よろしくお願い致します。

  • PL/SQLでのSQL文法

    こんにちは。教えてください。 PL/SQLを使うのが初めで戸惑っています。 まず、PROCEDUREで =========================== BEGIN SELECT NAME FROM TABLE1 WHERE NAME='tanaka'; END; / =========================== このように書いて実行させようとすると、「コンパイルエラー」 「INTO句はこのSELECT文に入ります」というエラーが出ます。 SQLの文法的には間違ってないと思うのですが、INTO句とはこれいかに?? ネットでPL/SQLで検索かけて調べたのですがあまりにも初歩すぎて わかりませんでした。 PL/SQLやORACLEのメーリングリストでお勧めがありましたら教えてください。 よろしくお願いいたします。

  • PL/SQLの変数内容出力について

    PL/SQLでの開発にあたり、もし良い方法がありましたら教えて下さい。 例外やORACLEエラー発生時、EXCEPTION処理としてUTL_FILEパッケージを使用したログ出力を行っています。 この際に、その処理の中で使用している全ての変数の内容を出力したいのですが、例えばV$テーブル等で、変数の内容を保持しているようなものは無いでしょうか? 一変数ずつ出力していると大変なので、例えばセッション情報を引数にして、そのセッションで使用されている変数内容を全て出力するようなログ関数を作りたいのです。 以上、よろしくお願いします。

  • 変数を使ってのSQL文の書き方(ASP)

    プログラム未経験者です。 aspのSQL文の書き方を教えてください。 (ASP.NETではなく、ASPの方です。) FORMで受けっ取った日付データをstrdayという変数に代入し、 そのstardayを使ってのSQL文の書き方ですが、 以下のような書き方で良いのか分かりません。 例えば、 前の行の「SQL」という同じ変数の直後に連結する書き方や 文字列との連結の書き方です。 また日付をシングルクオーテーションで囲む書き方などです。 strday = Request.Form("StartDay") SQL = "SELECT ・・・,・・・," SQL = SQL & strday & "as startday_date, ・・・," SQL = SQL & " WHERE ('" & strday & "' >= CONVERT(DATETIME, '2012-07-05 00:00:00', 102)) " SQL = SQL & " AND ('" & endday & "' <= CONVERT(DATETIME, '2012-07-06 00:00:00', 102)) " すみません。 宜しくお願いします。

  • PL/SQLでの文字列比較

    PL/SQL内の条件文で以下のような文字列比較は出来ないでしょうか? (1)ある変数に指定文字列が含まれるかどうか (PASCALで言うところのPOS関数のような) (2)ある変数が指定文字列で始まる・終わるかどうか (JAVAで言うところのstartWith,endWithのような) 調べたところ、(1)に関しては[instr]関数が使えそうだったのですが、文法エラーとなってしまいました。 どなたかお分かりになる方、よろしくお願いします。

  • PL/SQLで実行したSQLのログの取得について

    ASP(ActiveServerPage)より、PL/SQLのFunctionを実行し、Oracleの複数のTABLEを更新しようとしています。 ASPから実行する際には、引数を渡し、その引数をSQL実行の条件としていますが、実際に実行されたSQL文のログを取得したいのですが、どうしたらよいでしょうか? 何か良い方法をお教えいただけますよう、よろしくお願いいたします。 [実行環境] DB:Oracle8i

  • PL/SQLのエラーについて

    こんばんは。PL/SQLのエラーについて質問させて頂きます。 現在、Oracle8.1.7のデータベースを使用したオラクルのE-business Suiteという人事系システムで開発をしています。 そこで、SQL*Plusを使用してPL/SQLのパッケージをコンパイルしたところ、パッケージ仕様部も本体部もコンパイルのエラーは出なかったのですが、E-business SuiteにPL/SQLを設定し、動作させようとしたら、下記のようなエラーが発生しました。 -------------------------------------------------------------------- FDPSTP 内のOracleエラー 6550 原因: ORA-06550: 行 1、列 7: PLS-00221: 'ZT_TYOUHYOU_HENSEI_PKG'がプロシージャではないか、または未定義です。 ORA-06550: 行 1、列 7: PL/SQL: Statement ignored が原因で FDPSTP に失敗しました。 --------------------------------------------------------------------- また、作成したPL/SQLパッケージの仕様部は下記のとおりです。 -------------------------------------------------------------------- CREATE OR REPLACE PACKAGE APPS.ZT_TYOUHYOU_HENSEI_PKG AS FUNCTION get_henseihyo_kbn (i_grade IN VARCHAR2,o_hensei_kbn OUT VARCHAR2) RETURN NUMBER; <・・・・・中間部分は省略・・・・・> PROCEDURE main_shori (p_process_date IN VARCHAR2, p_location IN VARCHAR2); END ZT_TYOUHYOU_HENSEI_PKG; -------------------------------------------------------------------- 原因だと思われる心当たりの部分も探してみたのですが、このエラーの意味は何なのか、原因はどこにあるのか分かりません。 どなたかお判りの方、御回答よろしくお願い致します。

  • PL/SQL

    PL/SQL(Oralce)で、NVARCHAR2の変数を宣言した場合、その変数への代入方法を教えてください。 Hensu NVARCHAR2; と宣言し、 Hensu := N'テスト'; とした場合、コンパイルエラーとなりませんが、 Hensu  NVARCHAR2; Hsensu1 VARCHAR2; と宣言し、 Hensu := N || Hsensu1; とした場合、”識別子Nを宣言してください。”旨のコンパイルエラーが出力されていしまいます。 OracleはR8.1.7です。 よろしくお願いします。

届出印の確認方法と必要書類
このQ&Aのポイント
  • 通帳作成時の届出印を忘れた場合、確認は銀行窓口で行える。
  • 確認時に必要な持参物は身分証明書のみか、それ以外にも必要か不明。
  • 具体的な手続きや必要書類については、事前に問い合わせると安心。
回答を見る