PowerShell 사용시 Postgresql과 연동하는 방법을 정리해봅니다.
여러번 삽질을 통했고.. 결국 ODBC부터 설정하고 나서야 연결이 가능했으며,
실제 연동을 하고나서도 테이블의 컬럼 type을 맞춰주고 맞췄는데도
데이터값이 제대로 들어가지 못하는 상황이 있었습니다.
아무튼 위 데이터 검증여부는 연동하고나서 테스트하면서 잡아야 할 겁니다.
Postgresql 서버가 미리 구축되어있다면 개발PC 또는 개발서버에 맞는 ODBC 드라이버를 설치하시고 셋팅해야합니다.
https://www.postgresql.org/ftp/odbc/versions/msi/
PostgreSQL: File Browser
www.postgresql.org
ODBC 드라이버를 다운 받고 설치하시면 됩니다 .
설치하고나서
아래 설정방법부분을 참고해서 셋팅하시면 됩니다. 크게 어렵지 않습니다.
PostgreSQL 데이터 원본에 연결(SQL Server 가져오기 및 내보내기 마법사) - SQL Server Integration Services (SSI
PostgreSQL 데이터 원본에 연결(SQL Server 가져오기 및 내보내기 마법사)
docs.microsoft.com
$psqlServer = "서버IP"
$psqlId = "아이디"
$psqlPw = "암호"
$psqlDbname = "DB이름"
$psqlDbPort = "DB포트"
function Set-ODBC-Data{
param([string]$query=$(throw 'query is required.'))
$conn = New-Object System.Data.Odbc.OdbcConnection
$conn.ConnectionString= "Driver={PostgreSQL Unicode(x64)};Server=$psqlServer;Port=$psqlDbPort;Database=$psqlDbname;Uid=$psqlId;Pwd=$psqlPw;"
$cmd = new-object System.Data.Odbc.OdbcCommand($query,$conn)
$conn.open()
$cmd.ExecuteNonQuery()
$conn.close()
}
$query = "INSERT INTO tablename (colname) VALUES (colvalue)"
set-odbc-data -query $query
해외사이트를 참고해서 간단히 만들어본 코드입니다.
여기서는 insert 부분만 참고해서 수정했습니다.
Powershell v3 + ODBC + PostgreSQL + INSERT query - PowerShell General - Ask the Experts - IDERA Community
community.idera.com
앞서 데이터를 DB에 넣을 때 값이 이상하게 들어간다고 말씀드렸던 부분이 있었습니다.
예를 들어 오늘 날짜로 2021-06-05이런 형태의 string 값을 넣고자했는데
실제 DB에 들어갈 때는 숫자로 인식하여 값은 2010이 들어갑니다. 수식이 되어버려 2010이 된 것이죠
방법을 잘 찾지못해서 또 노가다를 했습니다. substring으로 잘라 넣은것이죠
C# 하다가 powershell에서는 이런 경우도 겪어보네요
'Tech > DB' 카테고리의 다른 글
PostgreSQL - Encoding (0) | 2020.03.14 |
---|
댓글