* [ 구조 복사 ]

Create Table new_table like old_table 

  특징 : 기존 테이블의 설정 그대로 복사 된다.

    참고 => 기존 테이블에 'Primary Key' 또는 'auto_increment' 가 설정 되어 있으면 복사 할 수 없음.
    응용 => Create Table IF NOT EXISTS new_table like old_table (new_table 이 없으면 복사)

 


* [ 구조와 데이터 복사 ]

Create Table new_table ( select * from old_table )

  특징 : 테이블의 구조와 함께 데이터도 함께 복사가 된다.

     주의 => 기존 테이블에 'Primary Key' 또는 'auto_increment' 가 설정 되어 있으면 해당 설정은 적용 되지 않고

                 값만 복사 됨.

 

* [ 데이터 복사 ]

Insert Into destination_table ( select * form source_table

  참고 ==> 대상 테이블의 컬럼 중에 자동 증가 값 설정 이 된 컬럼이 있을 경우 해당 컬럼에 데이터 입력시 중복된

                데이터가 있으면 오류 발생.
  응용 ==> Insert Into destination_table (column_a, column_b) (select a, b from source_table) 원하는 필드의

                데이터만 복사가 가능하다.

'배워서 남주자 > Data Base' 카테고리의 다른 글

[ MySQL] - join 쿼리  (0) 2019.10.29
Mysql 특정값 제외하고 Select 하기. Not IN  (0) 2019.10.18
[MySQL] Select 한 내용 Insert 시키는 방법  (0) 2019.09.29
SQL Server 2016 설치  (3) 2019.07.31
[Oracle] 이것저것  (0) 2019.03.21

동일한 구조의 테이블 또는 다른 구조의 테이블에  select 한 내용을 insert 하는 방법.

 

1. select 한 내용의  전체 컬럼 insert

INSERT INTO [table] SELECT * FROM [table] WHERE [조건];

select 테이블과 insert할 테이블의 구조가 일치해야 한다.

 

 

2. 원하는 컬럼만  select 해서 insert

INSERT INTO [table] (column1, colum2, colum3) SELECT column1, colum2, colum3 FROM [table] WHERE [조건];

특정 컬럼을 직접 선택해서 insert하는 방법이다.

[ 구글 메일로 이메일 발송이 차단되었을 경우 해결 방범 ]

    

1. 반송된 메일 주소에 반송원인과 함께 표시된 구글 고객센터 URL로 접속한다.

<hg*****@gmail.com>: host gmail-smtp-in.l.google.com[108.177.97.27] said:
    550-5.7.1 [59.9.162.64      12] Our system has detected that this message
    is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to
    Gmail, 550-5.7.1 this message has been blocked. Please visit 550-5.7.1
    https://support.google.com/mail/?p=UnsolicitedMessageError 550 5.7.1  for
    more information. x64si3716152pfc.130 - gsmtp (in reply to end of DATA
    command)

 

2. 대부분 계정 해킹으로 인한 대량메일 발송으로 인해 차단되는 경우가 대부분이다.
   아래 안내 페이지의 "대량메일 발신자 가이드라인" 을 선택한다.

 

 

 

3.   우측에 바로가기 메뉴 중 "IP 주소 차단으로 인한 메일반송 문제 해결하기"  를  선택한다.

 

 

 

4. 

 

다운로드 =>  https://www.microsoft.com/ko-kr/evalcenter/evaluate-sql-server-2016 

 

 

Microsoft 공식 홈페이지

Microsoft는 목표와 가치는 전세계의 사람과 기업이 잠재력을 최대한 발휘할 수 있도록 돕는 것입니다.

www.microsoft.com

1. 기본정보 입력 및 동의 후 평가판 설치 프로그램 다운로드.

    SQLServer2016-SSEI-Eval.exe

 

 

2. 프로그램 실행하여 설치용 프로그램을 내려  받는다.

     SQLSserver2016SP2-FullSlipstream-x64-KOR.iso

 

 

3. 계획 단계 Skip 하고  '설치' 단계를 진행한다.

 

4. '설치' 단계의 첫 항목 "새 SQL Server 독립 실행형 설치 ....." 를  선택한다.

 

5. 무료 버전으로 진행한다. ( 180일 사용가능 )

 

6. 라이선스 동의 의 진행.

 

7. 자동 업데이트 옵션 선택 후 진행한다.

 

8. 설치 결과를 확인한다. ( 방화벽 경고는 무시한다. )

 

9. 기능선택 옵션에서 필요한 기능을 선택한다.

    테스트 서버임으로 기본 3개 기능만 선택하고 진행한다.
       (데이터베이스 엔진 서비스,  검색을 위한 전체 텍스트 및 의미체게 추출, 클라이언트 도구 연결)

 

10. 인스턴스 구성 ( 기본설정으로 진행)

   * ( 인스턴스에 대한 이해)
    SQL Server는 하나의 컴퓨터에 대해 여러 인스턴스가 설치될 수 있다. 즉, 하나의 컴퓨터에 서로 다른 데이터베이스를 보유하는 SQL Server를 여러 번 설치할 수 있다는 얘기이며, 각각의 인스턴스는 자신만의 데이터베이스를 보유하게 된다. 이들 SQL Server 인스턴스는 디폴트 인스턴스와 명명된 인스턴스(named instance)로 나누어 볼 수 있는데, 디폴트 인스턴스는 대개 최초로 설치되는 SQL Server 인스턴스를 말하며 특별한 이름이 붙지 않는다. 디폴트 인스턴스가 설치된 이후에 추가로 설치되는 SQL Server는 디폴트 인스턴스와 구분하기 위해 각 인스턴스 마다 이름이 붙게 된다. 이렇게 이름이 붙은 SQL Server 인스턴스를 명명된 인스턴스라고 한다. 예를 들어 보자. 필자의 데스크톱에는 SQL Server 2000, SQL Express, SQL Server 2005가 모두 설치되어 있다. 이 중 최초로 설치한 SQL Server 2000이 디폴트 인스턴스이며, SQL Express와 SQL Server 2005는 각각 이름이 SQLEXPRESS, SQL2005 인 명명된 인스턴스이다. 그리고 이들 인스턴스들이 모두 동시에 수행될 수 있다. 다시 말하자면 sqlservr.exe 프로세스가 여러개 수행 중일 수 있다는 말이다.

디폴트 인스턴스와 명명된 인스턴스는 설치 시에 결정된다. SQL Server를 설치할 때, 해당 인스턴스를 디폴트 인스턴스로 설치할 것인지, 명명된 인스턴스로 설치할 것인지 결정할 수 있다. 대개, 첫 번째 SQL Server를 설치할 때, 설치 프로그램은 디폴트 인스턴스로 설치하곤 하지만 반드시 그렇게 해야만 하는 것은 아니다. 컴퓨터에 달랑 1개의 SQL Server 인스턴스를 설치하더라도 명명된 인스턴스로 설치가 가능함에 유의하자.

SQL Express의 경우, 항상 명명된 인스턴스로 설치된다. 설치 프로그램은 SQL Express를 설치할 때 SQLEXPRESS 라는 이름을 사용하여 데이터베이스를 설치하며, 이미 이 이름이 존재하는 경우 뒤에 숫자가 붙게 된다.

Referencing SQL Server Instances

그렇다면 하나의 컴퓨터에 여러 SQL Server가 존재할 때, 각각의 인스턴스를 참조하는 방법은 무엇일까? 디폴트 인스턴스는 이름을 갖지 않기 때문에 해당 컴퓨터의 컴퓨터 이름 혹은 IP 로서 참조된다. 반면 명명된 인스턴스는 컴퓨터 이름(혹은 IP)과 인스턴스 이름을 백슬래쉬(\) 문자로 구분하여 모두 명시해 주어야 한다. 예를 들어, DBServer 란 컴퓨터(IP가 10.1.1.10 이라 가정)에 SQL Server 2000 이 디폴트 인스턴스이며, SQL Express 그리고 SQL Server 2005가 SQLEXPRESS, SQL2005란 이름으로 설치되었다고 가정해 보자. 먼저 디폴트 인스턴스인 SQL Server 2000을 참조하기 위해서는 단순히 DBServer(혹은 IP 10.1.1.10)로만 참조하면 디폴트 인스턴스에 접근할 수 있다. SQL Express에 접근하기 위해서는 DBServer\SQLEXPRESS 로, SQL Server 2005에 접근하기 위해서는 DBServer\SQL2005 라는 SQL Server 이름을 사용해야 한다.

 

 

11. 서버 구성 ( 기본값을 구성한다.)

  

12. 데이터베이스 엔진 구성 ( 사용자 계정을 관리자 계정으로 등록한다.)

    - 하단의 "현재 사용자 추가" 버튼을 클릭하여  DB 관리자로 등록한다. (자동 등록됨)

 

13. 설치 준비

    - 세팅(선택)된 내용을 보여준다.  실행을 누르면 설치를 시작한다.

 

 

14. 설치 완료.

 

 

15. 관리용 프로그램을 설치한다. 

    - SQL Server Managerment Studio (SSMS)

       ( https://msdn.microsoft.com/ko-kr/library/mt238290.aspx )

 

 

1. Servlet의 이해

1.1 Servlet 이란

  • Servlet은 웹에서 JAVA 프로그래밍을 구현하기 위해 탄생 함.
  • JAVA 로 구현된 CGI(Common Gateway Interface) 라고들 흔히 말함
  • HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 Container에 의해서 실행되고, 관리된다.
  • HTML 변경시 Servlet을 재컴파일 해야 하는 단점이 있다.

1.2 Servlet Container란

  • HTTP 요청을 받아서 Servlet을 실행시키고, 그 결과를 사용자 브라우저에게 전달해주는 기능을 제공하는 컴포넌트 이다.
  • Servlet을 실행하고 생명주기를 관리하는 역할을 한다.
  • Servlet과 웹 서버(Apache, nginx..)가 서버 통신 할 수 있는 방법을 제공한다.
  • 멀티 스레딩을 지원하여 클라이언트의 다중 요청을 알아서 처리해준다.
  • 대표적인 Conatainer에는 Tomcat, jetty, jboss 등이 있다.

1.3 Servlet 동작과정

 

  • ① 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container에 보낸다.
  • ② Servlet Container는 HttpServletRequest, HttpServletResponse 두 객체를 생성한다.
  • ③ 사용자가 요청한 URL을 분석하여 어느 서블릿에 대한 요청인지 찾는다. (DD를 참조하여 분석)
  • ④ 컨테이너는 서블릿 service() 메소드를 호출하며, POST, GET여부에 따라 doGet() 또는 doPost()가 호출된다.
  • ⑤ doGet() or doPost() 메소드는 동적인 페이지를 생성한 후 HttpServletResponse객체에 응답을 보낸다.
  • ⑥ 응답이 완료되면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킨다.

DD (배포서술자, Deployment Descriptor) = web.xml

  • Servlet, Error Page, Listener, Fillter, 보안 설정등 Web Application의 설정 파일이다.
  • URL과 실제 서블릿의 매핑 정보도 담고 있다.
  • 하나의 웹 어플리케이션에 하나만 존재한다.
  • 보통 Web Document Root 디렉토리에 WEB-INF 폴더 아래 web.xml 파일로 존재한다.

1.4 JSP의 동작구조

 

 

 

2. Servlet 간단예제

2.1 Servlet 예제 코드 작성

  • src/main/java 폴더 아래에 com.oracleclub.study.servlet 패키지를 생성하고 아래의 HelloServlet을 생성한다.
  • 모든 JAVA 파일은 직접 코딩해 주세요

com.oracleclub.study.servlet.HelloServlet.java

 /*
 * HelloServlet.java 2012. 9. 14. 
 *
 * Copyright www.gurubee.net All rights Reserved.
 */
 package com.oracleclub.study.servlet;

 import java.io.IOException; 
 import java.io.PrintWriter;

 import javax.servlet.http.HttpServlet; 
 import javax.servlet.http.HttpServletRequest; 
 import javax.servlet.http.HttpServletResponse; 

 /** 
  * Servlet 간단 예제 
  * 
  * @author : oramaster 
  * 
  */
 @SuppressWarnings("serial")
 public class HelloServlet extends HttpServlet { 
      // 대부분의 Servlet은 doGet 또는 doPost만 작성하며, 
      // 컨테이너가 생성한 Request와 Response 객체를 전달 받는다. 
     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {    
          resp.setContentType("text/html; charset=UTF-8");
 

      // Response 객체의 PrintWriter를 사용해 브라우저에 HTML을 출력한다. 
      PrintWriter out = resp.getWriter();
      out.println("<HTML><HEAD><TITLE>HelloServlet</TITLE></HEAD>"); 
      out.println("<BODY>"); 
      out.println("<H2> Clinet IP: " + req.getRemoteAddr() + "</H2>"); 
      out.println("<H2> Client Host : " + req.getRemoteHost() + "</H2>");
      out.println("<H2> Request URI : " + req.getRequestURI() + "</H2>");
      out.println("</BODY></HTML>");
   }

 }

 

 

2.2 URL과 Servlet 매핑하기

  • HelloServlet 작성이 완료 되었다면, 배포서술자(DD=web.xml) 파일에 URL 매핑을 기술한다.
web.xml

 <servlet>
       <servlet-name>hello</servlet-name> <!-- DD 안에서 사용될 이름을 지정한다. --> 
       <servlet-class>com.oracleclub.study.servlet.HelloServlet</servlet-class> <!-- Servlet 클래스 이름을 기술한다. -->   </servlet>

 <servlet-mapping>
       <servlet-name>hello</servlet-name> <!-- Servlet 클래스의 DD안에서 정의한 이름 --> 
       <url-pattern>/servlet/hello</url-pattern> <!-- 클라이언트가 요청하게 될 이름. --> 
 </servlet-mapping>

배포서술자에서 서블릿 관련 항목을 간단히 설명하면 아래와 같다.

  • <servlet> : <servlet-name>과 <servlet-class>를 연결 한다.
  • <servlet-name> : DD 안에서 사용될 이름
  • <servlet-class> : 자바 클래스 이름
  • <url-pattern> : 클라이언트가 요청하게 될 이름
  • <servlet-mapping> : <servlet-name>과 <url-pattern>을 연결 한다.

2.3 Tomcat 연동 하기

  • 톰캣 다운로드 클릭 후 압축해제 한다.
  • 배포서술자까지 작성이 완료되었다면 톰캣을 연동하여 실행해 보자
  • 이클립스 <Servers>에서 <New>→<Server>를 실행한다.
  • <그림2-3>과 같이 <Tomcatv6.0 Server>를 선택한 후 <Server name> 을 web-project로 입력한다.
  • <Server runtime environment> 가 설정되어 있지 않다면 <Add> 버튼을 클릭하여 압축해제 한 Tomcat 디렉토리를 선택한다.
  • 강의에서는 Tomcat 6.x 버전을 기준으로 하였으며, 개인의 버전에 맞추어서 선택하면 된다.

 

  • Next 버튼을 클릭하고 위와 같이 spring-project를 [STUDY:Add]한 후 Finish 버튼을 클릭한다.

 

2.4 서블릿 실행

  • Tomcat Server를 Start 한 후 http://localhost:8080/servlet/hello URL 에 접속해 보자
  • 아래와 같이 정상적으로 실행이 되는지 확인해 보자

     Clinet IP : 0:0:0:0:0:0:0:1
     Client Host : 0:0:0:0:0:0:0:1
     Request URI : /servlet/hello 

2.5 Apache+Tomcat연동 후 서블릿 실행

  • 정상적으로 호출이 된다면 Apache와 연동을 해보자. 좀 전에 테스트한 http-vhost.conf 파일의 DocumentRoot를 spring-project의 webapps 디렉토리로 변경하고 Apache를 restart하면 된다.
  • JkMount 설정에 /servlet/ 디렉토리도 추가해 주자
http-vhost.conf 파일 설정

<VirtualHost *:80>
    ServerName test.apache.org
    DocumentRoot C:\workspace\project\spring-project\webapps 
 
# URL중 jsp로 오는 Request만 Tomcat에서 처리 함
JkMount  /*.jsp  spring-project 

# 아래의 spring-project는 workers.properties에서 등록한 worker이름 이다.
# servlet 예제 실행을 위해서 추가
JkMount  /servlet/*  spring-project
</VirtualHost> 

 

Apache를 restart 한 후 http://test.apache.org/servlet/hello 로 접속하여 Servlet이 정상적으로 실행되는 것을 확인하자.

 Clinet IP : 0:0:0:0:0:0:0:1
 Client Host : 0:0:0:0:0:0:0:1
 Request URI : /servlet/hello 

 

2.6 URL과 Servlet을 간단하게 매핑하기

  • 위 예제에서 간단하게 HelloServlet을 실행하였는데, 만약 서블릿 클래스가 굉장히 많아 진다면, <servlet> , <servlet-mapping> 설정이 서블릿의 두 배만큼 많아 질 것이다.
  • 톰캣에서는 서블릿 매핑 설정을 간단하게 할 수 있는 기능을 제공하며, 톰캣 서버의 web.xml(이클립스에서는 <Servers> <spring-project-config>의 web.xml) 에서 아래 부분의 주석만 해제하면 된다.
web.xml 파일 설정

<!-- 122라인 -->

        <servlet>

              <servlet-name>invoker</servlet-name>

              <servlet-class>

                      org.apache.catalina.servlets.InvokerServlet

              </servlet-class>

              <init-param>

                     <param-name>debug</param-name>

                     <param-value>0</param-value>

              </init-param>

              <load-on-startup>2</load-on-startup>

        </servlet>

<!-- 382라인 -->

        <servlet-mapping>

              <servlet-name>invoker</servlet-name>

              <url-pattern>/servlet/*</url-pattern>

        </servlet-mapping>

  • Tomcat Server의 web.xml 수정 후 이클립스를 다시 실행한다.
  • spring-project의 web.xml 에서 아래와 같이 servlet 이름만 지정하고 <servlet-mapping> 설정은 제거한다.
web.xml

<servlet>
       <servlet-name>hello</servlet-name> <!-- DD 안에서 사용될 이름을 지정한다. -->
       <servlet-class>com.oracleclub.study.servlet.HelloServlet</servlet-class> <!-- Servlet 클래스 이름을 기술한다. --> </servlet>

  • Tomcat Server를 재시작 한 후 http://test.apache.org/servlet/hello URL로 접속하여 정상 접속이 되는지 확인해보자
  • Invoker를 이용한 매핑의 경우 클라이언트 URL은 /servlet/servlet-name 이 된다.

 

3. 톰캣 startup 시 오류

3.1 404 Not Found 오류

  • <Server> → <spring-project> → <Web Moduls>에서 Path가 아래와 같이 공백으로 되어 있는지 확인한다.

3.2 java.lang.SecurityException

  • 톰캣이 startup시 "Caused by: java.lang.SecurityException: Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application" 에러가 발생한다면 Tomcat Server의 server.xml 파일에서 <Context> 태그에 privileged="true" 옵션을 추가하면 된다.

3.3 java.lang.ClassNotFoundException

  • 톰캣이 startup시 "java.lang.ClassNotFoundException" 오류가 발생하면 .classpath의 MAVEN2_CLASSPATH_CONTAINER 부분을 확인한다.
  • 아래와 같이 attributes의 /WEB-INF/lib 폴더를 추가한다.
  • Project Clean, Tomcat Clean 한 후 다시 start 해보자
.classpath의 MAVEN2_CLASSPATH_CONTAINER 설정

<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER" > 
     <attributes> 
             <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
     </attributes> 
</classpathentry>

 

-- STS 버전 
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
      <attributes> 
             <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
      </attributes> 
</classpathentry>

  • <Project> → <Clean>

  • <Server> → <Clean>

 

 

'배워서 남주자 > JAVA' 카테고리의 다른 글

Tomcat 설치 및 설정  (0) 2019.04.11

[tomcat 설치]

 1. yum 으로 Centos7 에서 제공하는 7.0 버전을 설치한다.

      [root@tomcat Catalina]# yum list installed | grep tomcat
      tomcat.noarch                          7.0.76-9.el7_6                  @updates 
      tomcat-admin-webapps.noarch            7.0.76-9.el7_6                  @updates 
      tomcat-docs-webapp.noarch              7.0.76-9.el7_6                  @updates 
      tomcat-el-2.2-api.noarch               7.0.76-9.el7_6                  @updates 
      tomcat-javadoc.noarch                  7.0.76-9.el7_6                  @updates 
      tomcat-jsp-2.2-api.noarch              7.0.76-9.el7_6                  @updates 
      tomcat-jsvc.noarch                     7.0.76-9.el7_6                  @updates 
      tomcat-lib.noarch                      7.0.76-9.el7_6                  @updates 
      tomcat-native.x86_64                   1.2.17-1.el7                    @epel    
      tomcat-servlet-3.0-api.noarch          7.0.76-9.el7_6                  @updates 
      tomcat-webapps.noarch                  7.0.76-9.el7_6                  @updates


 2. ntsysv 에 등록하여 자동 실행되도록 설정한다.
   

     [*] tomcat.service 

 

 3. 설치경로는 /etc/tomcat 에 관련 파일들이 생성된다.
    - 서비스 포트 확인  server.xml 파일을 열어 보면 아래와 같은 문구를 확인할 수 있다.

     

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

 

    - Tomcat 서비스 구성 파일 ( tomcat.conf )

       

            TOMCAT_CFG_LOADED="1"
            TOMCATS_BASE="/var/lib/tomcats/"
            JAVA_HOME="/usr/lib/jvm/jre"
            CATALINA_HOME="/usr/share/tomcat"
            CATALINA_TMPDIR="/var/cache/tomcat/temp"
            SECURITY_MANAGER="false"


 4. 데몬 실행 및 종료
      # systemctl   start   tomcat   --> 실행
      # systemctl   stop   tomcat   --> 종료

    ​

'배워서 남주자 > JAVA' 카테고리의 다른 글

Java Servlet ( 개념 )  (0) 2019.04.11

[select 문]

 


SQL> DESC 테이블;

     --> 테이블의 구조를 검색한다. 컬럼의 이름 데이타 타입을 확인할 수 있다.


SQL>SELECT * FROM tab;

     --> 내가 가진 모든 테이블을 보여줌

     --> 현재 스키마의 모든 테이블 목록을 검색한다.

     --> tab는 실제 테이블이 아니라 테이블의 목록을 보여주기 위한 가상 테이블이다.

     --> 오라클에서 스키마는 유저와 같은 의미를 갖는다.

 

[oracle] sqlplus 한글 깨짐 현상 문제


- 한글깨짐

sqlplus 접속 후 select 문에서 한글이 ??? 같이 물음표로 나온다면 다음과 같이 설정하자



[윈도우 계열]

  시스템 등록정보 -> 고급 -> 환경변수(N)에 다음 추가

NLS_LANG

AMERICAN_AMERICA.KO16KSC5601

or

NLS_LANG

KOREAN_KOREA.KO16KSC5601



[유닉스 계열]

export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601

(계속 등록해보려면 .profile 수정)






(참고) -------------------------------------------------------------


SQL> select * from nls_database_parameters;

PARAMETER                            VALUE

------------------------------ ----------------------------

NLS_LANGUAGE                       AMERICAN

NLS_TERRITORY                       AMERICANLS_CURRENCY                       $

NLS_ISO_CURRENCY                AMERICA

NLS_NUMERIC_CHARACTERS    .,

NLS_CHARACTERSET               KO16KSC5601

NLS_CALENDAR                       GREGORIAN

NLS_DATE_FORMAT                 DD-MON-RR

NLS_DATE_LANGUAGE             AMERICAN

NLS_SORT                               BINARY

NLS_TIME_FORMAT                  HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT        DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT   DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY              $

NLS_COMP                              BINARY

NLS_LENGTH_SEMANTICS        BYTE

NLS_NCHAR_CONV_EXCP         FALSE

NLS_NCHAR_CHARACTERSET   AL16UTF16

NLS_RDBMS_VERSION              11.1.0.6.0

------------------------------------------------------------------------------------------------------


NLS_LANGUAGE :  데이터 베이스에서 메세지를 보여줄때의 메세지 언어 설정이다 AMERICAN 되여있다 

NLS_TERRITORY :   금액을 표시 할때 날짜를 표현할때 표현 방법이다 

AMERIC 방식은 금액은 "$" 날짜는 DD-MON-YY 형식이고 

한글 방식은 :금액은"//" (원) 표시 날짜는 YYYY-MM-DD 형식으로 보여준다 



'배워서 남주자 > Data Base' 카테고리의 다른 글

SQL Server 2016 설치  (3) 2019.07.31
[Oracle] 이것저것  (0) 2019.03.21
[Mariadb] table 상세 정보 보기  (0) 2019.01.18
[MySQL & MariaDB] 기본 명령어  (0) 2018.05.23
[php-fpm] Oracle 연결 환경 변수 설정.  (0) 2018.03.30

<script>

// 오른쪽 마우스 금지 스크립트

$(document).ready(function() {

    $(document).bind("contextmenu", function(e){

       // alert("오른쪽 마우스 금지");

        return false;

    });

 

    $('img').bind("contextmenu",function(e){ 

       // alert("그림에서 오른쪽 마우스 금지"); 

        return false; 

    }); 

 

    $('img').bind("selectstart",function(e){ 

        //alert("그림에서 오른쪽 마우스 금지"); 

        return false;  

    }); 

}); 

 

document.oncontextmenu=function(){return false;} // 우클릭 방지

document.onselectstart=function(){return false;} // 선택 방지

document.ondragstart=function(){return false;} // 드래그 방지 

document.onmousedown=function(){return false;}  // 셀렉트 박스 방지

</script>



Postfix로 두개의 도메인( 예, a.com & b.com)을 이용하여 메일 서비스를 사용할 경우

각각의 도메인으로 도착하는 메일을 한의 메일 계정으로 확인하고자 할경우 Virtual_alias_domains 와 Virtual_alias_maps 설정으로 이용할 수 있다.


설정하는 방법은 postfix의 설정파일(main.cf & virtual)을 수정하는 방법과 DB를 이용하여 서비스를 구성하는 방법이 있다.




[방법 1] - 설정파일 편집하여 사용하기


● /etc/postfix/main.cf 수정


virtual_mailbox_domains = a.com 
virtual_alias_maps = hash:/etc/postfix/virtual


● /etc/postfix/virtual 수정 


# I want @a.com to have two incoming aliases
@a.com   @b.com


이렇게 설정하면 a.com 으로 오는 모든 메일은  b.com 도메인의  동일한 계정 전달된다.
이 방법은 설정이 간단하여 바로 이용할 수 있으나, 매번 설정 후 엔진을 재실행해야 한다.

포워딩 도메인이 여러개일 경우 virtual_mailbox_domains = a.com 도메인1 도메인2 

이렇게 증가시키면 된다.  /etc/postfix/virtual 파일에 @로 라인을 증가시킨다.



[방법 2] - DB와 연계하여 사용하기


● /etc/postfix/main.cf 수정


virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_alias_maps.cf

● /etc/postfix/mysql/virtual_mailbox_domains.cf 


hosts       = 127.0.0.1:3306
user        = DB계정
password    = DB패스워드
dbname      = DB이름

query       = SELECT domain FROM domain WHERE domain='%s' AND backupmx=0 AND active=1 UNION SELECT alias_domain.alias_doma
in FROM alias_domain,domain WHERE alias_domain.alias_domain='%s' AND alias_domain.active=1 AND alias_domain.target_domain=
domain.domain AND domain.active=1 AND domain.backupmx=0


● /etc/postfix/mysql/virtual_alias_maps.cf 


hosts       = 127.0.0.1:3306
user        = DB계정
password    = DB패스워드
dbname      = DB이름

query       = SELECT forwardings.forwarding FROM forwardings,domain WHERE forwardings.address='%s' AND forwardings.domain=
domain.domain AND forwardings.active=1 AND domain.backupmx=0 AND domain.active=1


● DB(vmail) - TABLE 
[domain]
domain/description/disclaimer/aliases/mailboxes/maillists/maxquota/quota/transport/backupmx/settings/created/modified/expired/active

a.com/0/0/0/0/0/dovecot/0/default_user_quota:1024;/2018-04-30 11:19:10/1970-01-01 01:01:01/9999-12-31/00:00:00/1
b.com/0/0/0/0/0/dovecot/0/                        /1970-01-01 01:01:01/1970-01-01 01:01:01/9999-12-31/00:00:00/1


[alias_domain]
alias_domain/target_domain/created/modified/active

a.com/b.com/1970-01-01 01:01:01/1970-01-01 01:01:01/1


[forwardings]
address/forwarding/domain/dest_domain/is_maillist/is_list/is_forwarding/is_alias/active

@a.com/@b.com/a.com/b.com/0/0/0/0/1

+ Recent posts