CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·일본산당 ·방탄소년당 ·자전거당 ·개발한당 ·야구당 ·안드로메당 ·가상화폐당 ·클다방 ·소시당 ·이륜차당 ·덕질한당 ·걸그룹당 ·퐁당퐁당 ·AI당 ·달린당 ·키보드당 ·땀흘린당 ·AI그림당 ·육아당 ·나스당 ·3D메이킹 ·X세대당 ·ADHD당 ·날아간당 ·사과시계당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·골프당 ·차턴당 ·총쏜당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·어학당 ·가죽당 ·레고당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·바다건너당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·노젓는당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·소셜게임한당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

아무거나질문

컴퓨터 python 잘하시는분 한번만 도와주세요. ㅠㅠ 5

2021-07-18 08:11:16 58.♡.217.26
바다와같은

def make_greenplum_database_schema_table(yearmonth):

    # try:

    curs = greenplumdb.cursor()

    tablename = greenplum_database_name + '.' + str(greenplum_schemanameNo1 + '.' + str(yearmonth) )

    tablename = str(tablename)

    curs = greenplumdb.cursor()

    sql = """ 

        CREATE TABLE IF NOT EXISTS """ + str(tablename) + """ (

        field_name varchar NULL,

        field_date varchar NULL,

        field_time varchar NULL,

        field_cpu_usr varchar NULL,

        field_cpu_sys varchar NULL,

        field_cpu_idle varchar NULL,

        field_cpu_wai varchar NULL,

        field_cpu_hiq varchar NULL,

        field_cpu_siq varchar NULL,

        field_dsk_read varchar NULL,

        field_dsk_writ varchar NULL,

        field_net_recv varchar NULL,

        field_net_send varchar NULL,

        field_memory_used varchar NULL,

        field_memory_buff varchar NULL,

        field_memory_cach varchar NULL,

        field_memory_free varchar NULL

        ) ;"""

    print(sql)

    curs.execute(sql)

    greenplumdb.commit()


이렇게 짰는데, print 로 나온 sql 실행을 SQLclient(dbeaver)에서 실행하면 되는데, python 에서는 안되네요.. 주말 내내 빠져있는데...

머리 터질거 같아요.. ㅠㅠ







바다와같은 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [5]
냠냠
IP 112.♡.234.4
07-18 2021-07-18 08:15:55
·
이런 류의 질문에는 언제나 에러메세지(=안 될 때의 실행결과)를 보여줘야 합니다. 스스로 해결할 때에는 그걸로 구글링 해보시는 게 맞구요.
바다와같은
IP 58.♡.217.26
07-18 2021-07-18 08:27:40
·
Traceback (most recent call last):
File "/Users/junhopark/OneDrive/GitHubSync/GPDB_log/main_06_postgre_04_temp.py", line 166, in <module>
make_greenplum_database_schema_table(yearmonth)
File "/Users/junhopark/OneDrive/GitHubSync/GPDB_log/main_06_postgre_04_temp.py", line 119, in make_greenplum_database_schema_table
curs.execute(sql)
psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, commands ignored until end of transaction block
바다와같은
IP 58.♡.217.26
07-18 2021-07-18 08:28:05
·
이런 메시지가나오는데, 검색해도 딱히 메시지가 안나와요서...ㅠㅠ 답답합니다.
진리의치맥
IP 117.♡.10.48
07-18 2021-07-18 09:15:31
·
계정 정보는 어디서 가져오는지 한번 체크해보심이
예쁜닉네임
IP 222.♡.79.246
07-18 2021-07-18 09:23:40
·
파이썬 문제라기 보다는 데이터베이스 문제같네요. 해당 SQL 문이 SQLclient 에서는 실행된다고 하니, 그 SQL 문 말고 그 앞에 있는 어떤... 다른 SQL 문이 문제를 일으키는 것은 아닐까요?

https://stackoverflow.com/questions/2209169/using-postgres-in-a-web-app-transaction-aborted-errors 의 대답에 왜 이런 일이 생기는지 설명하고 있네요. 이 대답에서 주목할만한 부분은... 우선 선행 에러가 있습니다. 예제로 든 것에서는...

cur.execute('select current _date')

current 와 _data 사이에 공백이 있습니다. 여기서 먼저 에러가 발생합니다. 그 다음, 에러가 발생하지 않을 것으로 보이는 SQL 문을 실행시킵니다.

cur.execute('select current_date')

여기서도 에러가 발생합니다. 이 때 발생하는 에러가...

current transaction is aborted, commands ignored until end of transaction block

라고 하네요. 이 에러가 왜 발생하는지 알려면 데이터베이스의 트랜젝션 이란 것을 조금 알아야 합니다. 위의 예제에서... 실패한 SQL 문을 철회하지 않았습니다. 실패했다면 철회해야 합니다. 성공했다면 완료시켜야 하고요. 이 예제에서는 롤백한 다음 SQL 문을 실행했습니다. try-except 형식을 하나 보여주고 있고요. 비슷한 내용인 https://stackoverflow.com/questions/2979369/databaseerror-current-transaction-is-aborted-commands-ignored-until-end-of-tra 에도 try-except 형식을 하나 보여주고 있네요.

저는 앞쪽 것이 조금 더 좋아보입니다. 커서도 잘 닫아주고 있고요. 작성하신 코드에는 커서를 두 번 획득하고 있는데... 그럴 필요는 없을 것 같습니다. 뒷쪽 것에서 재미있는 것은... SQL 문을 실행시키기 전엔 롤백부터 하는 예제네요. 이것도 참고가 될 것 같아요.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.