{"id":3827,"date":"2020-10-18T21:52:18","date_gmt":"2020-10-18T12:52:18","guid":{"rendered":"\/blog\/?p=3827"},"modified":"2023-09-21T09:26:37","modified_gmt":"2023-09-21T00:26:37","slug":"db2-sqc-%eb%b9%8c%eb%93%9c-%ed%85%8c%ec%8a%a4%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=3827","title":{"rendered":"[DB2] sqc \ube4c\ub4dc \ud14c\uc2a4\ud2b8"},"content":{"rendered":"\n<p>DB2SQC_TEST.BAT<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">@ECHO OFF\n\nREM -------------------------------------------------------------------------\nREM -\nREM - DB2 \ud658\uacbd\ubcc0\uc218 \uc124\uc815\nREM -\nREM -------------------------------------------------------------------------\nSET \"SQLLIB_DIR=C:\\Program Files\\IBM\\SQLLIB\"\nSET \"CLASSPATH=%SQLLIB_DIR%\\java\\db2java.zip;%SQLLIB_DIR%\\java\\db2jcc4.jar;%SQLLIB_DIR%\\java\\sqlj4.zip;%SQLLIB_DIR%\\java\\db2jcc_license_cu.jar;%SQLLIB_DIR%\\bin;%SQLLIB_DIR%\\java\\common.jar;.;.;%CLASSPATH%\"\nSET \"DB2CLP=DB20FADE\"\nSET \"DB2INSTANCE=DB2\"\nSET \"DB2PATH=%SQLLIB_DIR%\"\nSET \"INCLUDE=%SQLLIB_DIR%\\INCLUDE;%INCLUDE%\"\nSET \"LIB=%SQLLIB_DIR%\\LIB;%LIB%\"\nSET \"Path=%SQLLIB_DIR%\\BIN\\..\\db2tss\\bin;%SQLLIB_DIR%\\BIN;%SQLLIB_DIR%\\FUNCTION;C:\\Program Files\\ibm\\gsk8\\lib64;C:\\Program Files (x86)\\ibm\\gsk8\\lib;%Path%\"\n\nSET SRC_NAME=SQCTEST\n\n@ECHO ON\n\nREM -------------------------------------------------------------------------\nREM -\nREM - DB2 \uc2dc\uc791 \ubc0f \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0dd\uc131\nREM -\nREM -------------------------------------------------------------------------\nDB2 DB2START\nDB2 CREATE DATABASE %SRC_NAME%\n\nREM -------------------------------------------------------------------------\nREM -\nREM - DB2 \uc811\uc18d \ud6c4 C\uc5b8\uc5b4\ub85c \ubcc0\ud658\nREM -\nREM -------------------------------------------------------------------------\nDEL %SRC_NAME%.C\nDB2 CONNECT TO %SRC_NAME%\nDB2 PREP %SRC_NAME%.SQC BINDFILE\n\nREM -------------------------------------------------------------------------\nREM -\nREM - C\ucf54\ub4dc \ucef4\ud30c\uc77c\nREM - make\ub294 \ubc18\ub4dc\uc2dc GnuWin32 make\ub97c \uc0ac\uc6a9\ud55c\ub2e4.\nREM - http:\/\/gnuwin32.sourceforge.net\/packages\/make.htm\nREM -\nREM -------------------------------------------------------------------------\nRMDIR DB2PATH\nMKLINK \/D DB2PATH \"%DB2PATH%\"\n\nsourceanalyzer.exe -b test -clean\nsourceanalyzer.exe -b test -64 -Xmx4096m -logfile sca1.log make -f Makefile\nsourceanalyzer.exe -b test -64 -Xmx4096m -logfile sca2.log -scan -f %SRC_NAME%.fpr\n\nREM -------------------------------------------------------------------------\nREM -\nREM - DB2 \uc811\uc18d \uc885\ub8cc \ubc0f \ubd88\ud544\uc694\ud55c \ud30c\uc77c \uc0ad\uc81c\nREM -\nREM -------------------------------------------------------------------------\nRMDIR DB2PATH\nDB2 CONNECT RESET\nREM DB2 DROP DATABASE %SRC_NAME%\nREM DB2 DB2STOP<\/pre>\n\n\n\n<p>Makefile<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">$(SRC_NAME).o : $(SRC_NAME).c\n\tgcc -IDB2PATH\/include -Wno-stringop-overflow -c -o $(SRC_NAME).o $(SRC_NAME).c\n\t\nclean:\n\tdel *.c *.o<\/pre>\n\n\n\n<p>SQCTEST.SQC<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code\">#include &lt;stdio.h>\n#include &lt;stdlib.h>\n#include &lt;string.h>\n#include &lt;sqlenv.h>\n#include &lt;sqlutil.h>\n\nEXEC SQL BEGIN DECLARE SECTION;\n  short id;\n  char name[10];\n  short dept;\n  double salary;\n  char hostVarStmtDyn[50];\nEXEC SQL END DECLARE SECTION;\n\nint main()\n{\n  int rc = 0;\n  EXEC SQL INCLUDE SQLCA;\n\n  \/* connect to the database *\/\n  printf(\"\\n Connecting to database...\");\n  EXEC SQL CONNECT TO \"sample\";\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"\\nConnect Error:  SQLCODE = %d. \\n\", SQLCODE);\n     goto connect_reset;\n  }\n  else\n  {\n     printf(\"\\n Connected to database.\\n\");\n  }\n\n  \/* execute an SQL statement (a query) using static SQL; copy the single row\n     of result values into host variables*\/\n  EXEC SQL SELECT id, name, dept, salary\n          INTO :id, :name, :dept, :salary\n          FROM staff WHERE id = 310;\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Select Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n  else\n  {\n     \/* print the host variable values to standard output *\/\n     printf(\"\\n Executing a static SQL query statement, searching for\\n the id value equal to 310\\n\");\n     printf(\"\\nID        Name        DEPT       Salary\\n\");\n     printf(\" %d           %s          %d       %f\\n\", id, name, dept, salary);\n  }\n\n  strcpy(hostVarStmtDyn, \"UPDATE staff SET salary = salary + 1000 WHERE dept = ?\");\n  \/* execute an SQL statement (an operation) using a host variable\n     and DYNAMIC SQL*\/\n  EXEC SQL PREPARE StmtDyn FROM :hostVarStmtDyn;\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Prepare Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n  else\n  {\n     EXEC SQL EXECUTE StmtDyn USING :dept;\n  }\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Execute Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n\n  \/* Read the updated row using STATIC SQL and CURSOR *\/\n  EXEC SQL DECLARE posCur1 CURSOR FOR\n     SELECT id, name, dept, salary\n     FROM staff WHERE id = 310;\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Declare Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n  EXEC SQL OPEN posCur1;\n  EXEC SQL FETCH posCur1 INTO :id, :name, :dept, :salary ;\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Fetch Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n  else\n  {\n     printf(\" Executing an dynamic SQL statement, updating the\\n salary value for the id equal to 310\\n\");\n     printf(\"\\n ID   Name        DEPT       Salary\\n\");\n     printf(\" %d           %s          %d       %f\\n\", id, name, dept, salary);\n  }\n\n  EXEC SQL CLOSE posCur1;\n\n  \/* Commit the transaction *\/\n  printf(\"\\n  Commit the transaction.\\n\");\n  EXEC SQL COMMIT;\n  if (SQLCODE  &lt;0)\n  {\n     printf(\"Error:  SQLCODE = %d. \\n\", SQLCODE);\n  }\n\n  \/* Disconnect from the database *\/\n  connect_reset :\n     EXEC SQL CONNECT RESET;\n     if (SQLCODE  &lt;0)\n     {\n        printf(\"Connection Error:  SQLCODE = %d. \\n\", SQLCODE);\n     }\n  return 0;\n } \/* end main *\/<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>DB2SQC_TEST.BAT Makefile SQCTEST.SQC<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[10],"tags":[],"class_list":["post-3827","post","type-post","status-publish","format-standard","hentry","category-computing_database"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3827"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3827\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}