0

次のコードがあります。

IF nvl(p_value, 0) >= 0 THEN
      l_currency_prefix := 'scc.currency_prefix_pos';
      l_currency_suffix := 'scc.currency_suffix_pos';
    ELSE
      l_currency_prefix := 'scc.currency_prefix_neg';
      l_currency_suffix := 'scc.currency_suffix_neg';
    END IF;

l_query := 'SELECT nvl('||l_currency_prefix||', '')'
                       ||'trim(to_char('||p_value||
                                       ',scc.currency_format
                                        ,'||'NLS_NUMERIC_CHARACTERS=' || 'scc.decimal_group_separator'||'))'
                       ||'nvl('||l_currency_suffix||',  '')
              FROM gss.gss_currency_locale scc
             WHERE scc.country_code =' ||p_country_code||
              'AND scc.currency_code ='|| p_currency_code||
              'AND rownum=1';

l_query の dbms 出力は次のとおりです。

SELECT nvl(scc.currency_prefix_pos, ')trim(to_char(10000,scc.currency_format
                                            ,NLS_NUMERIC_CHARACTERS=scc.decimal_group_separator))nvl(scc.currency_suffix_pos, ')
                  FROM gss.gss_currency_locale scc
                 WHERE scc.country_code =USAND scc.currency_code =USDAND rownum=1

ただし、ORA-00933 エラーが表示され続けます。これらのコードを数時間デバッグしましたが、エラーの場所を見つけることができませんでした。どなたか、これについてアドバイスをいただけないでしょうか。

ありがとうございます!

4

1 に答える 1