SELECT db_link, username, password, host, created
FROM user_db_links
IT
- DBLink보기 2010.05.26
- ORA-02069 2010.05.26
- ORA-02085 2010.05.26
- 레벨별 색상 및 소계 누계 구하기 2010.05.19
- PIVOT(피벗) 사용하기 2010.05.19
- ORA-01476 제수가 0 입니다 2010.05.19
- 그리드 셀에 양수만 입력하고 싶은 경우 2010.05.19
- ORA-01722 2009.12.22
- [ReportDesigner] 리포트디자이너 - 여러 서브페이지 한사번당 출력 2009.09.28 1
- ORACLE 부분다중 바이트문자 오류 해결 2009.04.23
DBLink보기
ORA-02069
Oracle/PLSQL: ORA-02069 Error
Error:
ORA-02069: global_names parameter must be set to TRUE for this operation
Cause:
You tried to execute an operation that requires a remote mapping. This can not be done because the parameter called GLOBAL_NAMES is not set to TRUE.
Action:
The options to resolve this Oracle error are:
Try setting the GLOBAL_NAMES parameter to TRUE with the following statement:
ALTER SESSION SET GLOBAL_NAMES = TRUE;
http://www.techonthenet.com/oracle/errors/ora02069.php
여기 한번 참고해보셔도 되구요.. 위 방법은
instance 레벨에서의 처리입니다. 오라클을 다시 마운트하시면, 설정이 없어집니다.
영구적인 설정이라면 initSID.ora 파일의 parameter중
Golbal_names 라는 파라메터의 값이 true로 되어 있어야 합니다. 그래야 오라클을 재구동하여도 계속 적용되어 있습니다.
내용은 좀 더 찾아보니..
db_link master site와 slave site의 DB name Alias가 같아야 한다는 것 같네요 ~
ORA-02085
ORA-02085: 데이터베이스 링크 EKP가 EKP.US.ORACLE.COM에 연결됩니다
해결: 결론은, global_names = true여서 생긴 문제였습니다.
alter session set global_names = False로 변경후, 에러 없이 연결이 잘 되었고, ini parameter에 명시적으로 넣어서 해결하였습니다.
참고 출처: http://forums.oracle.com/forums/thread.jspa?threadID=420795&tstart=740
레벨별 색상 및 소계 누계 구하기
BkColor : iif(rowlevel>0,'mintcream','default')
누계, 소계만 mintcream색상으로 하고 싶은 경우에는 사용
(누계, 소계는 logical rowType이기 때문에)
Cf. Lowlevel의 의미
Record 의 RowType이 Logical이 아닌 경우 - RowLevel = 0
Record 의 RowType이 Logical인 경우 – RowLevel > 0 (1이상)
(RowLevel 값은 다중의 GroupKey가 적용되어 만들어진, 통계 등의 계산결과를 가지고 있는 Record)
SubSumExpr : decode(Rowlevel, 1, FP_PLAN.sum, 2, pivotsum('FP_PLAN', currow, 0, pivotindex+1))
Cf. PivotSum(strColID,nPivotRow[,nStart[,nCnt]])
strColID: Sum값을 구할 Column ID.
nPivotRow Integer: Sum값을 구할 Pivot Row Index.
nStart :시작 Pivot Column Index. Default Value = 0
nCnt : Pivot Column 개수. Defualt Value = Pivot ColCount
소계인 경우에 groupKey로 걸어준 계획 값의 합을, 누계인 경우 누적의 개념이므로 전 것과 자신의 것까지 구하는 것임
(pivotindex기본값이 0이므로, 0+1 즉 자신의 값 까지 구함을 의미)
이전소계 + 현누계 시,
for(var i=0; i<pivotIndex; i++)
{ pivotsum
}
추가) sub_sumtext : Group된 것 중 하나만 소계 보이고 다른 것들은 안보이게 하려면
GroupKey잡으면 잡은 순서대로 level이 되고, 소계 누계 보이려면 소계 GroupKey되는 것과 동일하게 하나 더 생성한다.
예) decode(level1, '1', column2(소계), 2, casesum("row<=currow"), "column2")
PIVOT(피벗) 사용하기
피벗은 ROW를 ROW(Y축)수만큼 동적 COLUMN(X축으로 만들기 위해서 사용한다.
(데이터베이스에서 ROW를 COLUMN으로 출력하는 것과 비슷)
피벗을 사용하려면 원본데이터셋과, 피벗용 데이터 셋 2개가 있어야 한다.
(Pivot Logical Dataset은 원본 Dataset으로부터 GroupKey,PivotKey를 가지고 PivotTable을 구성하는 Dataset)
피벗사용 설정
–1. DataObject : 피벗으로 만들고자 하는 원본 DataSet을 지정
-2. DatasetType: Pivot (Pivot은 데이터르르 가져올 DataSet을 DataObject에 담아주어야 함)
-3. GroupKey : Dataset에서 Group으로 묶을 Column ID을 지정 (Y축 column ID로 사용)
Cf. ㄱ. GroupKey 속성: "," : GroupKey의 Level을 줌.
":" : 두 개 이상의 Column을 하나의 GroupKey로 사용
예 : GroupKey = "ColumnID1,ColumnID2" 설정시 Record들을 ColumnID1으로 먼저
Groupping 후 Column1으로 Groupping된 Record들에 대해서 ColumnID2로 다시
Groupping.
주의: "," 앞뒤에는 공백이 없어야 함.
(BIZ_FG별로 소계, 누계 사용이 필요하여 BIZ_FG, BIZ_FG2(BIZ_FG와 동일값)를 지정)
-3. PivotKey : Logical Dataset에 PivotTable을 구성하기 위한 PivotColumn을 지정
즉, 동적으로 늘어날 Column을 지정해 주는 것.(복수개 지정시에는 ","사용)
위 그림과 같은 경우 동적인 년월, 보고일자, 주차의 row를 column으로 만드는 것이다.
(GroupKey는 PivotTable을 구성하는 Y축 ColumnID, PivotKey는 X축 ColumnID로 사용.)
결과화면
ORA-01476 제수가 0 입니다
원인: 나누기에서 분모가 0이어서 발생하는 문제.
(원래는 분모가 0이 안되게 해야하지만 데이터 정합성과 기타 문제로 인하여 분모가 0이 될 수있음.)
해결방법: 분모가 0이 되는 경우 DECODE(분모, 0, NULL, 분모)로 사용한다.
사용예: SELECT NVL(분자 / DECODE(분모, 0, NULL, 분모), 0) FROM 테이블;
분모가 0인경우 NULL로 나누기에 오류를 피할 수 있다.
참고사이트: http://dev4u.tistory.com/211
그리드 셀에 양수만 입력하고 싶은 경우
Edit : regexpr
RegExprFilter : [0-9]
소수점도 같이 표현해 주고 싶어서 .을 추가해 주었다.
ORA-01722
DECODE()함수의 Return 값관련 오류사항
Return값 = DECODE(expr, search, result [, search, result ]... [, default ])
- DECODE() 함수의 Return값은 첫번째 result(3번째 인수)의 Datatype에 따라 달라진다.
- 첫번째 result(3번째 인수)가 null 이라면 Return값의 Datatype은 String이다.
- 첫번째 result(3번째 인수)와 나머지 result나 defaut의 Datatype이 다르면
"ORA-01722: 수치가 부적합합니다." 에러가 발생한다.
[ReportDesigner] 리포트디자이너 - 여러 서브페이지 한사번당 출력
한사번당 여러 서브페이지를 출력하는 경우
xml 쿼리정의 ->조건정의-> EMPNO = current()/EMPNO
각각의 서브페이지에는 empno를 구해서
주쿼리와 empno를 비교해서 페이지 넘김 처리를 하는 것이다.
ORACLE 부분다중 바이트문자 오류 해결
SELECT PARAMETER, VALUE
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER LIKE '%CHARACTERSET%';
결과확인
NLS_CHARACTERSET값인 KO16KSC5601이 서버에서
사용하는 CHARACTERSET!
Client에서 사용하는 charset은
regedit -> NLS_LANG
(oracle ->KOREAN부분)
값 확인해서 변경하기