반응형

TO_CHAR시 ROUND는 자동으로 처리되니 굳이 쓸 필요없고, '99990.000'처럼 하면 '9'때문에 유효숫자 앞자리에 space가 들어갑니다.

String 갯수는 테이블의 선언된 컬럼사이즈 감안해서 적당히 맞추면 되겠지요...?

'9'는 유효하지 않은 숫자는 space화 하는것이고, '0'은 유효하지 않은 숫자도 '0'을 찍어주는 포맷스트링입니다...'FM'은 변환 뒤 유효문자 앞뒤의 공백을 제거해 주는 포맷스트링입니다...참고하세요~~


이 두 문제는 아래의 포맷스트링을 쓰면 해결됩니다...아래 결과 테스트 해 보세요.


SELECT
  TO_CHAR(0.1234, 'FM999,990.000') AS a
, TO_CHAR(1.2345, 'FM999,990.000') AS b
, TO_CHAR(10.1234, 'FM999,990.000') AS c
, TO_CHAR(110.1234, 'FM999,990.000') AS d
, TO_CHAR(1234.0000, 'FM999,990.000') AS e
FROM dual

반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] decode  (0) 2011.07.22
[ORACLE] sign  (0) 2011.07.22
[ORACLE] translate(특정문자 제거)  (0) 2011.07.22
[Oracle] commit 후 데이터 복구  (2) 2011.03.29
ORCLE 자주 사용하는 명령어  (0) 2010.07.07
반응형

-- 테이블 명 변경
ALTER TABLE schema.table_name RENAME TO new_table_name;

-- 테이블 로그 관련
ALTER TABLE schema.table_name LOGGING;
ALTER TABLE schema.table_name NOLOGGING;

-- 컬럼 추가
ALTER TABLE schema.table_name ADD (column_properties);

-- 컬럼 속성 변경
ALTER TABLE schema.table_name MODIFY (column_properties);

-- 컬럼 삭제
ALTER TABLE schema.table_name DROP COLUMN column_name;

-- 컬럼명 변경
ALTER TABLE schema.table_name RENAME COLUMN old_name TO new_name;

-- 제약 조건명 변경
ALTER TABLE schema.table_name RENAME CONSTRAINT old_name TO new_name;

-- 제약 조건 삭제
ALTER TABLE schema.table_name DROP CONSTRAINT constraint_name;

-- 테이블의 테이블스페이스 변경
ALTER TABLE schema.table_name MOVE TABLESPACE tablespace_name;

-- 테이블의 통계정보 업데이트
ANALYZE TABLE table_name COMPUTE STATISTICS;
ANALYZE TABLE table_name ESTIMATE STATISTICS SAMPLE 30 PERCENT;
ANALYZE TABLE table_name ESTIMATE STATISTICS SAMPLE 1000 ROWS;

-- 테이블의 통계 락 해제
EXECUTE DBMS_STATS.UNLOCK_SCHEMA_STATS('schema_name');

-- 스키마 소유의 오브젝트에 대한 통계 생성
EXECUTE DBMS_UTILITY.ANALYZE_SCHEMA('schema_name', 'COMPUTE');

-- PK 추가
CREATE UNIQUE INDEX schema.index_name ON schema.table_name (columns);
ALTER TABLE schema.table_name ADD CONSTRAINT constraint_name PRIMARY KEY (columns);

-- 인덱스명 변경
ALTER INDEX schema.old_index_name RENAME TO new_index_name;

-- 인덱스의 테이블스페이스 변경
ALTER INDEX schema.index_name REBUILD TABLESPACE tablespace_name;

-- 테이블스페이스의 데이터 파일 이동 및 이름변경
ALTER TABLESPACE tablespace_name OFFLINE NORMAL;
OS COPY: data file
ALTER TABLESPACE tablepsace_name RENAME DATAFILE 'diskb:data_file.dat' TO 'diska:data_file.dat';
ALTER TABLESPACE tablespace_name ONLINE;

-- SYNONYM 생성
CREATE SYNONYM schema.synonym_name FOR schema.object_name;
CREATE SYNONYM schema.synonym_name FOR schema.object_name@db_link_name;

-- COMMENT 생성
COMMENT ON TABLE schema.table_name IS 'comment_text';
COMMENT ON COLUMN schema.table_name.column_name IS 'comment_text';

-- DB LINK 생성
CREATE /* PUBLIC */ DATABASE LINK db_link_name
CONNECT TO user_id IDENTIFIED BY password USING 'tns_name';

-- SUBQUERY FACTORING

WITH
dept_costs

AS (
SELECT department_name, SUM(salary) dept_total
  FROM employees e, departments d
 WHERE e.department_id = d.department_id
 GROUP BY department_name

),
avg_cost

AS (
SELECT SUM(dept_total)/COUNT(*) avg
  FROM dept_costs

)
SELECT *

  FROM dept_costs
 WHERE dept_total > (SELECT avg FROM avg_cost)
 ORDER BY department_name;

반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] decode  (0) 2011.07.22
[ORACLE] sign  (0) 2011.07.22
[ORACLE] translate(특정문자 제거)  (0) 2011.07.22
[Oracle] commit 후 데이터 복구  (2) 2011.03.29
ORACLE 소수점이하 삭제.  (0) 2010.07.07
반응형

escape 메서드는 charstring의 내용을 포함한 문자열 값(유니코드 형식)을 반환합니다. 공백과 문장 부호, 악센트 부호가 있는 문자, 그외 비ASCII 문자는 모두 %xx 인코딩으로 바뀝니다. 여기서 xx는 해당 문자를 나타내는 16진수입니다. 예를 들어 공백은 "%20"으로 반환됩니다.

<body>
<script>
str="Aa?ㄱ음";
v="<table border=1><tr><td>idx</td><td>문자</td><td>escape</td><td>charCode</td><td>encodeURI</td></tr>"
for(i=0;i<str.length;i++){
 v+="<tr>";
 v+="<td>"+i+"</td><td>"+str.charAt(i)+"</td><td>"+escape(str.charAt(i))+"</td><td>"+str.charCodeAt(i)+"</td><td>"+encodeURI(str.charAt(i))+"</td>";
 v+="</tr>";
}
v+="</table>";
document.write(v);
</script>

반응형

+ Recent posts