私はExcelファイルを使用してデータを挿入しているテーブルを5〜6つ持っていますが、何が問題なのかわかりませんが、データの特殊文字が追加され、だから、何らかのprocedure.currentlyで私は1つの関数を使用してカラムを更新していますが、私は(私の他のチームメンバーのために)より使いやすいものがほしいと思っています。 私は以下の機能を使用しています。完全なテーブルから特殊文字を削除します
create or replace FUNCTION pfm_on_varchar(
p_str IN VARCHAR2)
RETURN VARCHAR2
IS
o_str VARCHAR2(4096) := '';
asc_val NUMBER;
BEGIN
FOR I IN 1 .. LENGTH(p_str)
LOOP
asc_val := ascii(SUBSTR(p_str,i,1));
IF ((asc_val BETWEEN 48 AND 57) OR (asc_val BETWEEN 65 AND 90) OR (asc_val BETWEEN 97 AND 122)) THEN
o_str := o_str || chr(asc_val);
END IF;
END LOOP;
RETURN o_str;
END pfm_on_varchar;
とどのように私は私が述べたように、私は
Error(4,3): PL/SQL: SQL Statement ignored
Error(4,10): PL/SQL: ORA-00942: table or view does not exist
なぜ単純なSQLでもこれを行うことができます。取得している特殊文字のリストをselectステートメントにcaseステートメントを作成し、nullに置き換えてください。 – XING
この手順は非常に遅く、各文字を1つずつ処理します。なぜ文字セットで問題を解決しようとしないのですか? –
このエラーは、スキーマに 'TABLE_NEW'という名前のテーブルが存在しないことを示しています。動的SQLには、 'execute immediate'と引用符付きの文字列が必要です。 –