이전에는 실행이 잘 되었는데 다른버전을 설치하고 나니..
자동으로 실행되던 mysql이 실행되지 않는다.

mysqld 로 실행해보니

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld
mysqld: Can't change dir to 'C:\Program Files\MySQL\MySQL Server 5.7\data\' (Errcode: 2 - No such file or directory)
2019-10-02T13:52:36.921289Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-10-02T13:52:36.921289Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2019-10-02T13:52:36.922287Z 0 [Note] mysqld (mysqld 5.7.19) starting as process 24040 ...
2019-10-02T13:52:36.929270Z 0 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.7\data\DESKTOP-PNS3EHE.lower-test
2019-10-02T13:52:36.929270Z 0 [Warning] Can't create test file C:\Program Files\MySQL\MySQL Server 5.7\data\DESKTOP-PNS3EHE.lower-test
2019-10-02T13:52:36.930269Z 0 [ERROR] failed to set datadir to C:\Program Files\MySQL\MySQL Server 5.7\data\
2019-10-02T13:52:36.932263Z 0 [ERROR] Aborting

2019-10-02T13:52:36.934255Z 0 [Note] Binlog end
2019-10-02T13:52:36.935252Z 0 [Note] mysqld: Shutdown complete

해결방법은 간단하다.

cmd 누르고 services.msc 입력 또는 서비스 실행

mysql을 찾아보면 자동인데 중지로 되어있을 것임.
시작시키면 끝.

728x90

다른 table data로 update 할 때

update tb1
set col1= (select col2 from tb2 where tb1.id = tb2.id) 
where 1 = 1;

where절이 없으면 syntax Error 가 난다.

 

728x90

ora-12164 에러 처리

2017. 12. 4. 08:50
네트워크 접속이 안된다는 뜻으로
tnsnames.ora 파일을 확인

1.  Id/pass가 잘못 된 경우
2. tnsnames.or 파일의 경로가 잘못 된 경우
    Network - Admin 폴더 밑에 있어야 하는데 그 밑에 Sample폴더에 있알 수도 있음
   Sample는 무시 또는 삭제하고 Admin폴더 밑으로
728x90

jstl에서 연산을 할 때(특히 나눗셈) 소수점이 제대로 안찍히고 자동으로 반올림이 되는 경우가 있다.


아무리 핸들링 하려고 해도 안됐지만 결국 해결


해결방법은 받아온 Data를 바로 쓰지 않고 포맷을 바꾼상태에서 사용해야 한다.


ex) result.SUM_ANSWER1이 70, result.SUM_ANSWER2가 1일 때

구성비율은

result.SUM_ANSWER1/(result.SUM_ANSWER1 + result.SUM_ANSWER2) 와

result.SUM_ANSWER2/(result.SUM_ANSWER1 + result.SUM_ANSWER2)

이다.


이것을 jstl로 표현하면

<c:set var="a" value="${result.SUM_ANSWER1/(result.SUM_ANSWER1 + result.SUM_ANSWER2)}"/>

<c:set var="b" value="${result.SUM_ANSWER2/(result.SUM_ANSWER1 + result.SUM_ANSWER2)}"/>

인데 결과는

a = 100, b=0 이 나온다.


해결방법은

<fmt:formatNumber var="sumAnswer1" value="${result.SUM_ANSWER1}" pattern="#.##"/>

<fmt:formatNumber var="sumAnswer2" value="${result.SUM_ANSWER2}" pattern="#.##"/>


<c:choose>

<c:when test="${sumAnswer1> 0}">

<fmt:formatNumber var="calAnswer1" value="${sumAnswer1/(sumAnswer1+sumAnswer2)}"/>


</c:when>

</c:choose>


받아 온 값이 int 형이면 연산을 해도 int 이기 때문에

포맷을 소수점있게 바꾼다음 연산해야 소수점연산이 제대로 된다.

728x90

태그 라이브러리 사용할 때

<c:if test="${not empty abcde|">

${fn:replace(abcde, '\r\n', '<br/>')}

</c:if>


를 짧게 한줄로 쓰려고


${not empty abcde ? fn:replace(abcde , '\r\n', '<br/>') : "empty" }

위와 같이 썼는데 에러난다...

? : 안에서는 역슬래쉬(\)가 제대로 먹지 않는다


728x90

SUBSTR을 사용하는 이유는 SYS_CONNECT_BY_PATH를 하면서 ','를 붙이기 때문에

Data의 시작이 , 로 시작한다. 그것을 잘라주기 위함임


SELECT SUBSTR(max(SYS_CONNECT_BY_PATH (COLUMN_NAME, ',')),2) AS ALIAS
  FROM (
        SELECT COLUMN_NAME, ROWNUM RNUM
          FROM TABLE_NAME
         WHERE ROWNUM <= 20
       )
START WITH RNUM = 1
CONNECT BY PRIOR RNUM = RNUM - 1


출처 : http://nadachel.tistory.com/entry/oracle-%EC%A1%B0%ED%9A%8C%EB%90%9C-%EC%84%B8%EB%A1%9C%EA%B2%B0%EA%B3%BC%EB%A5%BC-%EA%B0%80%EB%A1%9C%EB%A1%9C-%ED%91%9C%ED%98%84-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95


몇 번이나 검색하느라... 이번에 저장해 놓고 나중에 써먹어야지 ㅋㅋ

728x90

Tomcat에 jenkins를 webapps 폴더에 넣고 startup을 했을 때,

8080포트가 이미 사용중어어서 충돌 날 때가 있다.


이때, 아예 Tomcat의 기본포트를 바꿔주면 ㅎㅎㅎ

/apache-tomcat-7.0.52/conf/server.xml

before

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

after

<Connector port="9000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />

<Connector executor="tomcatThreadPool"
               port="9000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


startup을 했을 때 오류가 없으면 OK.

http://localhost:9000/jenkins/


728x90

전자정부프레임워크에 회원가입도 했고

통합개발환경도 압축을 풀고 Eclipse를 실행하는데


1. Failed to load the JNI shared library "C:\Java\jre6\bin\client\jvm.dll"


이것은 64bit를 설치하려는데 설치된 JAVA가 32bit일 수 있다.

다시 32bit로 받아서 실행해야한다.



2. 설명서대로 처음프로젝트를 생성했는데

src 폴더와 target 폴더만 생성되고 아무것도 없을 때,

설정된 JVM이 8일 수 있다.


eclipse 실행시 JDK1.8 대신 JDK6 이나 7로 바꾸고 프로젝트를 생성해본다.

728x90

여러 요인이 있겠지만...


? 를 써야하는데 :변수를 써서 나는 경우도 있다.

하지만 테이블명@계정으로 별칭을 준 경우에

Merge INTO 절은 위 에러

(

java.sql.SQLException: ORA-01008: 일부 변수가 바인드되지 않았습니다.

)를 뱉어낸다.


728x90


지도 API를 사용호출시 브라우저에서 호출하면 정상인데

JAVA 소스에서 호출하면 다음과 같은 에러가 떴다.

(parameter : 서울특별시 강남구 강남대로)

[Fatal Error] :3:22: An invalid XML character (Unicode: 0x1c) was found in the CDATA section.


문제는 브라우저에서 호출할 때, UrlEncoding을 해서 보내는데

그것을 JAVA에서 Decoding을 하고 그대로 사용하니

결국 Encoding안된 parameter가 넘어가서 에러가 나는듯 하네


try{

String address = URLEncoder.encode(addr, "UTF-8");

String apiKey = "Naver 지도API";

String encoding = "utf-8";

String coord = "latlng";//latlng, tm128(navigation 용 : default)

String target = "http://openapi.map.naver.com/api/geocode.php";

String params = "?key=" + apiKey + "&encoding=" + encoding + "&coord=" + coord + "&query=" + address;

URL url = new URL(target+params);

URLConnection connection = url.openConnection();

try{

InputStream in = connection.getInputStream();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(in);

NodeList itemNodes = doc.getElementsByTagName("item");

for(int i = 0; i < itemNodes.getLength(); i++){

Node item = itemNodes.item(i);


NodeList childNodes = item.getChildNodes();

//public static final short ELEMENT_NODE = 1;

//public static final short ATTRIBUTE_NODE = 2;

//public static final short TEXT_NODE = 3;

 

for( int j = 0 ; j < childNodes.getLength(); j++){

Element ele = null;

Node childNode = childNodes.item(j);

if (childNode.getNodeType() != Node.ELEMENT_NODE){

continue;

}

String eleTag = childNode.getNodeName();

if( "point".equals(eleTag)){

NodeList pointList = childNode.getChildNodes();

for(int m = 0; m < pointList.getLength(); m++){

Node aPoint = pointList.item(m);

String pointName = aPoint.getNodeName();

if("x".equals(pointName)){

//logger.debug(aPoint.getNodeName() + " : " + aPoint.getTextContent());

}else if("y".equals(pointName)){

//logger.debug(aPoint.getNodeName() + " : " + aPoint.getTextContent());

}

}

break;

}

if( "address".equals(eleTag)){

continue;

}

if( "addrdetail".equals(eleTag)){

continue;

}

}//end of for j

}//end of for i

}catch(Exception e){

e.printStackTrace();

}

}catch(Exception e){

e.printStackTrace();

    }


728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
Cloud (26)
Go lang (30)
Front-end (27)
Device (3)
MAC (1)
Spring framework (49)
Java (13)
English (39)
SOA (0)
Idioms (7)
모르는거 (5)
WriteEnglish (10)
Android (56)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :