'2007/10'에 해당되는 글 4건

  1. 2007/10/25 PLAN 뜨기
  2. 2007/10/12 ORA-12154 (2)
  3. 2007/10/12 String 을 Byte 단위로 자르는 함수
  4. 2007/10/10 따라다니는 퀵메뉴 Javascript



토드에서는

VIEW -> OPTIONS -> ORACLE -> GENERAL

메뉴에서  TOAD_PLAN_TABLE 에서 플랜테이블 생성후

플랜 실행..

SQLPLUS 에서는 첨부 문서 참고..
(여기저기서 얻은거라.. 출처는 좀;; )
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 건빵쥔곰
TAG plan

ORA-12154

Idea Village/database 2007/10/12 13:37
Error while trying to retrieve text for error ORA-12154

얼마전 개발서버 DB 셋팅을 하던중 ORA-12154 에러가 발생하여 온갖 삽질을 다했다 -ㅅ-

원래 이 에러는 client 에서 DB 접근시 tnsnames.ora 에 db_alias 나 tnsnames.ora 설정이

잘못되어 있을 경우 나타난다

하지만!!! DB 셋팅 한두번 해보나 -ㅅ-)!!! 그런 초보적인 실수를 할리가 !!!

그래서 책자 찾아 보고 oracle 에 문의 해본 결과

SQLNET 설정에서 문제가 있을 수도 있다는 결론 도출!!!

(문제는  방화벽이었음.. orz... 당연히 방화벽이 막혀 있으니 alias 를 제대로 해도 못읽지..)

그래서 해결책 !!!

SQLNET.ORA 파일에서 해당 접속 IP 의 접근을 허용하여 주면된다!! (물론 방화벽 제거는 기본)


# tcp.invited_nodes=(DB로컬 아이피와 접속을 허용할 ip)
tcp.invited_nodes=(192.167.3.224)
# tcp.excluded_nodes=(접속을 차단할 ip)

등의 설정을 해 주면 만사 OK!!!

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 건빵쥔곰
TAG ORA-12154
소켓통신이나 전문 처리를 할때  String 을 subString 으로 자르기보다 Byte  단위로 잘라서
통신을 송/수신 하기도 한다.

다음의 함수가 유용할듯  

/**
     * String 을 BYTE 단위로 자르는 함수
     * @ author 박동규
     * @ param startIndex, length
     * @ return String 잘려진 문자열
     */
   
    public String cutStringToByte (String str, int startIndex , int length) {
       
        byte[] b1 = null;
        byte[] b2 = null;
        try{
           
            if(str == null ) {
                return "";
            }
           
            b1 = str.getBytes();
            b2 = new byte[length] ;
           
            if( length > (b1.length - startIndex) ) {
                length = b1.length - startIndex;               
            }
           
            System.arraycopy(b1,startIndex,b2,0,length);
           
        } catch (Exception e) {
            e.printStackTrace();
        }
           
        return new String(b2);
    }
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 건빵쥔곰

<script language="javascript">
<!--
var stmnLEFT = 10; // 왼쪽 여백 (메뉴가 왼쪽에서 10픽셀 떨어진 곳에 보여집니다)
var stmnGAP1 = 0; // 위쪽 여백 (메뉴가 위에서 10픽셀 떨어진 곳에 보여집니다)
var stmnGAP2 = 0; // 스크롤시 브라우저 위쪽과 떨어지는 거리
var stmnBASE = 300; // 스크롤 시작위치
var stmnActivateSpeed = 200;
var stmnScrollSpeed = 10;

var stmnTimer;

function ReadCookie(name)
{
var label = name + "=";
var labelLen = label.length;
var cLen = document.cookie.length;
var i = 0;

while (i < cLen) {
                var j = i + labelLen;

                if (document.cookie.substring(i, j) == label) {
                                var cEnd = document.cookie.indexOf(";", j);
                                if (cEnd == -1) cEnd = document.cookie.length;

                                return unescape(document.cookie.substring(j, cEnd));
                }

                i++;
}

return "";
}

function SaveCookie(name, value, expire)
{
var eDate = new Date();
eDate.setDate(eDate.getDate() + expire);
document.cookie = name + "=" + value + "; expires=" +  eDate.toGMTString()+ "; path=/";
}

function RefreshStaticMenu()
{
var stmnStartPoint, stmnEndPoint, stmnRefreshTimer;

stmnStartPoint = parseInt(document.all.quickMenuN.style.top, 10);
stmnEndPoint = document.documentElement.scrollTop + stmnGAP2;

//alert("stmnStartPoint == " + stmnStartPoint);
//alert("stmnEndPoint == " + stmnEndPoint);
//alert("stmnGAP2 == " + stmnGAP2);

if (stmnEndPoint < stmnGAP1) {
 stmnEndPoint = stmnGAP1;
}

stmnRefreshTimer = stmnActivateSpeed;

if ( stmnStartPoint != stmnEndPoint ) {
                stmnScrollAmount = Math.ceil( Math.abs( stmnEndPoint - stmnStartPoint ) / 15 );
                document.all.quickMenuN.style.top = parseInt(document.all.quickMenuN.style.top, 10) + ( ( stmnEndPoint<stmnStartPoint ) ? -stmnScrollAmount : stmnScrollAmount );
                stmnRefreshTimer = stmnScrollSpeed;
}

stmnTimer = setTimeout ("RefreshStaticMenu();", stmnRefreshTimer);
}

function ToggleAnimate()
{
if (document.all.quickMenuN.value == "Y") {
                RefreshStaticMenu();
                SaveCookie("ANIMATE", "true", 300);
}
else {
                clearTimeout(stmnTimer);
                quickMenuN.style.top = stmnGAP1;
                SaveCookie("ANIMATE", "false", 300);
}
}

function InitializeStaticMenu()
{
document.all.quickMenuN.style.left = stmnLEFT;

         if (ReadCookie("ANIMATE") == "false") {
                document.all.quickMenuN.value = "N";
                document.all.quickMenuN.style.top = document.body.scrollTop + stmnGAP1;
}
else {
                document.all.quickMenuN.value = "Y";
                document.all.quickMenuN.style.top = document.body.scrollTop + stmnBASE;
                RefreshStaticMenu();
}
}
//-->
</script>

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 건빵쥔곰
TAG quickmenu