-2
今日、Varcharカラムに数値を入力して、Oracleがそのvarcharフィールドを数値フィールドに変換しました。 そして、文字値を挿入しようとすると、ORA-01722(無効な数値)が投げられています。OracleはVarcharフィールドを数値に変換しました。VARCHARに変換する方法
誰でも私をvarcharフィールドに戻すために助けてくれますか?
今日、Varcharカラムに数値を入力して、Oracleがそのvarcharフィールドを数値フィールドに変換しました。 そして、文字値を挿入しようとすると、ORA-01722(無効な数値)が投げられています。OracleはVarcharフィールドを数値に変換しました。VARCHARに変換する方法
誰でも私をvarcharフィールドに戻すために助けてくれますか?
コメント者は正しい:データベースは列の種類を独自に変更しません。一般的には、新しい列を作成し、古いデータを新しい列にコピーし、元の列を削除し、新しい列の名前を変更する必要があります。
drop table deleteme_table;
-- zippy s/b varchar2(30), not integer
CREATE TABLE deleteme_table
(
adate DATE
, zippy INTEGER
);
-- Add the correct type to the table as a new column
ALTER TABLE deleteme_table
ADD (tempcol VARCHAR2 (30));
-- Copy the old values to the new column
UPDATE deleteme_table
SET tempcol = zippy;
-- Get rid of the original column
ALTER TABLE deleteme_table
DROP COLUMN zippy;
-- Rename to original column name
alter table deleteme_table rename column tempcol to zippy;
ポストテーブルの説明と例外 – GurV
を投げ、あなたは*で何を意味Oracleは*数値フィールドにそのvarchar型フィールドを変換し、クエリ? – GurV
ようこそ。 [ask]を読んで、関連情報を投稿してください。ありがとう。 – OldProgrammer