여러 열이있는 테이블이 있고 값에서 공백 값 ('')을 제거하고 싶습니다.열 이름으로 루프에서 값을 업데이트하십시오.
update table
set column_name = trim(both ' ' from column_name)
where column_name like '% '
와 테이블에 55 개 컬럼 주위를 포함하고 있기 때문에 그래서 아마 루프 대신 열 각각의 모든 업데이트 문을 작성하는 실현 가능한 아이디어라고 : 쿼리입니다.
declare
column_name varchar2(2048);
cursor pointer is
select column_name into column_name from user_tab_cols where table_name = 'TABLE_NAME';
begin
for x in pointer
loop
dbms_output.put_line(x.column_name);
end loop;
end;
네,이 작동 : 루프가 작동하는지
먼저 내가 확인. dbms_output 창에 열 이름이 표시됩니다.
declare
column_var varchar2(2048);
cursor pointer is
select column_name into column_var from user_tab_cols where table_name = 'TABLE_NAME';
begin
for x in pointer
loop
update table_name
set x.column_var = trim(both ' ' from x.column_var)
where x.column_var like '% ';
commit;
end loop;
end;
이것은 불행하게도 작동하지 :
지금, 여기 내가 작동하지 않는 것을 시도하고있는 무슨이다. 이 오류는 다음과 같습니다.
ORA-06550: line 11, column 18:
PLS-00302: component 'COLUMN_VAR' must be declared.
ORA-06550: line 11, column 16:
PL/SQL: ORA-00904: "X"."COLUMN_VAR": invalid identifier
ORA-06550: line 9, column 10:
PL/SQL: SQL Statement ignored
어디에서 트랙을 벗어나겠습니까?