Yurttas/PL/DBL/oracle/F/03/Company-A/Employee-def.pc

From ZCubes Wiki
Jump to navigation Jump to search
 1/*
 2REM
 3REM
 4REM Employee-def.pc
 5REM
 6REM
 7*/
 8
 9#include <stdio.h>
10#include <sqlca.h>
11
12#define UNAME_LEN 32
13#define PWD_LEN   16
14
15VARCHAR username[UNAME_LEN]; /* VARCHAR is an Oracle-supplied struct */
16VARCHAR password[PWD_LEN];   /* varchar can be in lower case also. */
17
18char u_name[UNAME_LEN];
19char pwd[PWD_LEN];
20
21void connect_to_oracle();
22void sql_error();
23
24void main(int argc, char* argv[]) {
25  connect_to_oracle();
26
27  EXEC SQL
28    WHENEVER SQLERROR DO sql_error("Error in CREATE_table: Employee");
29
30  EXEC SQL
31    CREATE TABLE Employee(fname VARCHAR2(12) NOT NULL,
32                          minit CHAR,
33                          lname VARCHAR2(16) NOT NULL, 
34                          ssn CHAR(9) NOT NULL,
35                          bdate CHAR(9),
36                          address VARCHAR2(24),
37                          sex CHAR,
38                          salary NUMBER(8,2),
39                          superssn CHAR(9),
40                          dno INTEGER NOT NULL,
41              PRIMARY KEY(ssn));
42
43  EXEC SQL COMMIT WORK RELEASE;
44
45  exit(0);
46}
47
48
49void sql_error(char* msg) {
50  char err_msg[128];
51  int buflen, msglen;
52
53  EXEC SQL WHENEVER SQLERROR CONTINUE;
54
55  printf("%s \n", msg);
56  buflen = sizeof(err_msg);
57  sqlglm(err_msg, &buflen, &msglen);
58  printf("%.*s \n", msglen, err_msg);
59  exit(1);
60}
61
62
63void connect_to_oracle() {
64  /* get your username/passwd from "user_pwd.txt" file */
65
66  FILE *in_file;
67  in_file = fopen("user_pwd.txt", "r");
68  fscanf(in_file, "%s", u_name);
69  fscanf(in_file, "%s", pwd);
70
71  strncpy((char *) username.arr, u_name, UNAME_LEN);
72  username.len = strlen((char *) username.arr);
73
74  strncpy((char *) password.arr, pwd, PWD_LEN);
75  password.len = strlen((char *) password.arr);
76
77  EXEC SQL WHENEVER SQLERROR DO sql_error ("ORACLE error-- ");
78  EXEC SQL CONNECT :username IDENTIFIED BY :password;
79
80  printf("connected to oracle - \n");
81}