All Products
Search
Document Center

PolarDB:ODBC

Last Updated:Aug 27, 2026

PolarDB for PostgreSQL (Compatible with Oracle) menyediakan driver ODBC untuk sistem Unix dan Windows. Topik ini menjelaskan cara menggunakan driver tersebut untuk menghubungkan ke kluster Anda.

Prasyarat

  • Anda telah membuat akun database di kluster PolarDB. Untuk informasi selengkapnya, lihat Create a database account.

  • Alamat IP host yang perlu mengakses kluster PolarDB telah ditambahkan ke daftar putih. Untuk informasi selengkapnya, lihat Set a cluster whitelist.

  • Sistem Windows Anda adalah Windows 7 atau versi yang lebih baru dengan Service Pack 1 terinstal.

  • Alat-alat berikut telah diinstal pada sistem Unix atau Linux Anda:

    • Libtool 1.5.10 atau versi yang lebih baru.

    • unixODBC-devel.

    • PolarDB-Tools. Untuk petunjuk pengunduhan dan instalasi, lihat PolarDB-Tools.

Unduh driver

Instal ODBC pada Windows

  1. Unduh paket instalasi sesuai arsitektur Windows Anda. Untuk tautan unduhan, lihat Download the driver.

  2. Setelah pengunduhan selesai, ekstrak paket ODBC.

  3. Jalankan file install.bat sebagai administrator. Setelah instalasi selesai, tekan sembarang tombol untuk keluar.

  4. Opsional: Untuk menguninstal paket ODBC, jalankan file uninstall.bat.

Hubungkan ke PolarDB pada Windows

  1. Di Control Panel, buka Tools.

  2. Pada halaman Tools, cari dan buka ODBC Data Sources.

  3. Di kotak dialog ODBC Data Source Administrator, klik Add.

  4. Pilih POLARDB (UNICODE) dan klik Complete.

  5. Di kotak dialog, masukkan informasi berikut.

    Parameter

    Deskripsi

    Data Source

    Nama sumber data.

    Description

    Deskripsi untuk sumber data.

    Database

    Nama database tujuan.

    SSL Mode

    Pilih metode enkripsi SSL.

    Server

    Titik akhir database tujuan. Untuk melihat titik akhir kluster PolarDB, lihat View or apply for an endpoint.

    Port

    Port database tujuan. Nilai default-nya adalah 1521.

    User Name

    Username untuk akun database.

    Password

    Password untuk akun database.

  6. Klik Save.

Instal ODBC pada Unix atau Linux

  1. Jalankan perintah berikut untuk mengatur variabel lingkungan LD_LIBRARY_PATH:

    export LD_LIBRARY_PATH=<PolarDB-ODBC/lib/path>
  2. Jalankan perintah berikut untuk mengatur variabel lingkungan ODBCINI:

    export ODBCINI=<your odbc.init file path>
  3. Unduh driver ODBC yang sesuai dengan arsitektur dan versi sistem operasi Anda. Untuk tautan unduhan, lihat Download the driver.

  4. Instal driver ODBC.

    Catatan

    Paket driver ODBC PolarDB bersifat portabel. Anda dapat langsung menggunakannya setelah diekstrak.

    tar -zxvf polardb-odbc.tar.gz

    Struktur direktorinya sebagai berikut:

    ├── include
    ├── lib
    └── samples
    3 directories

Hubungkan ke PolarDB pada Unix atau Linux

  1. Instal Libtool pada server Linux Anda. Versi Libtool harus 1.5.10 atau lebih baru.

    yum install -y libtool
  2. Instal unixODBC-devel pada server Linux Anda.

    yum install -y unixODBC-devel
  3. Edit file odbc.ini Anda.

    vim $ODBCINI 
  4. Tambahkan informasi berikut ke file odbc.ini.

    [POLARDB]
    Description = ODBC for POLARDB
    Driver      = /home/user/target/lib/unix/polardb-odbc.so
    Driver64    = /home/user/target/lib/unix/polardb-odbc.so
    Database    = <Your database name>
    Servername  = <Your database endpoint>
    Password    = <Your password>
    Port        = <Your port>
    Username    = <Your username>
    Trace       = yes
    TraceFile   = /tmp/odbc.log
    FileUsage   = 1
    Catatan
    • Untuk melihat titik akhir kluster PolarDB, lihat View or apply for an endpoint.

    • Pada contoh ini, ganti /home/user dengan path aktual yang berisi folder target.

  5. Hubungkan ke PolarDB.

    $isql -v POLARDB
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>

Contoh untuk Unix atau Linux

Bagian ini menunjukkan cara menjalankan file uji Test1 dan Test2.

Sebelum menjalankan contoh, buat dan isi tabel berikut di database PolarDB Anda:

create table emp(empno number(4),
ename varchar2(10),
job varchar2(9),
mgr number (4),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2));
insert into emp values(7369,'smith','clerk',7902 ,to_date('17-12-1980','dd-mm-yyyy'),800,null, 20 );
insert into emp values(7499,'allen','salesman',7698 ,to_date('20-2-1981','dd-mm-yyyy'),1600, 300 , 30 );
insert into emp values(7521,'ward' ,'salesman' ,7698 ,to_date(' 22-2-1981' , 'dd-mm-yyyy' ), 1250 , 500 , 30 );
insert into emp values(7566,'jones','manager' , 7839 ,to_date(' 2-4-1981' , 'dd-mm-yyyy' ), 2975 , null , 20 );
insert into emp values(7654,'martin','salesman',7698 ,to_date(' 28-9-1981' , 'dd-mm-yyyy' ), 1250 , 1400 , 30 );
insert into emp values(7698,'blake','manager', 7839 ,to_date(' 1-5-1981' , 'dd-mm-yyyy' ), 2850 , null , 30 );
insert into emp values(7782,'clark','manager', 7839 ,to_date(' 9-6-1981' , 'dd-mm-yyyy' ), 2450 , null , 10 );
insert into emp values(7788,'scott','analyst', 7566 ,to_date(' 13-7-1987' , 'dd-mm-rr ' ) - 85 , 3000 , null , 20 );
insert into emp values(7839,'king', 'president ' , null ,to_date('17-11-1981 ' , 'dd-mm-yyyy' ), 5000 , null , 10 );
insert into emp values(7844,'turner','salesman ' , 7698 ,to_date('8-9-1981 ' , 'dd-mm-yyyy' ), 1500 , 0 , 30 );
insert into emp values(7876,'adams', 'clerk' , 7788 ,to_date('13-7-1987' , 'dd-mm-rr ' ) - 51 , 1100 , null , 20 );
insert into emp values(7900,'james', 'clerk' , 7698 ,to_date('3-12-1981' , 'dd-mm-yyyy' ), 950 , null , 30 );
insert into emp values(7902,'ford', 'analyst' , 7566 ,to_date('3-12-1981' , 'dd-mm-yyyy' ), 3000 , null , 20 );
insert into emp values(7934,'miller','clerk ' , 7782 ,to_date('23-1-1982' , 'dd-mm-yyyy' ), 1300 , null , 10 );
  1. Jalankan perintah berikut untuk mengekstrak paket driver ODBC.

    tar -zxvf polardb-odbc.tar.gz
  2. Jalankan perintah berikut untuk membuka folder polardb-odbc.

    cd polardb-odbc
  3. Buka folder samples di dalam folder driver ODBC.

    cd samples
  4. Kompilasi sampel uji. Setelah kompilasi selesai, dua file uji, Test1 dan Test2, akan dihasilkan.

    make
  5. Jalankan Test1 dan Test2.

    ./Test1
    ## Run Test1
    ./Test2
    ## Run Test2
    Catatan
    • Test1 menunjukkan operasi Membuat, Membaca, Memperbarui, dan Menghapus (CRUD). Test2 menunjukkan cara menggunakan kursor dan parameter output.

    • Potongan kode berikut hanya untuk tujuan demonstrasi. Untuk kode lengkap, lihat file Test1 dan Test2 di folder samples dari paket driver.

Kode berikut merupakan contoh dari Test1:

... 
int main(int argc, char* argv[])
{
    /* Initialization */
    RETCODE rCode;
    HENV *hEnv = (HENV*)malloc(sizeof(HENV));
    HDBC *hDBC = (HDBC*)malloc(sizeof(HDBC));
    HSTMT *hStmt = (HSTMT*)malloc(sizeof(HSTMT));
    Connect("POLARDB","user","",&hEnv,&hDBC);
    rCode = SQLAllocStmt(*hDBC,hStmt);
    rCode = SQLAllocHandle(SQL_HANDLE_STMT,*hDBC,hStmt);
    /* CRUD operations */
    ExecuteInsertStatement(&hStmt,(UCHAR*) "INSERT INTO EMP(EMPNO,ENAME) VALUES((SELECT COUNT(EMPNO) FROM EMP),'JACKSON')");
    ExecuteUpdate(&hStmt,(UCHAR*) "UPDATE EMP SET ENAME='ODBC Test' WHERE EMPNO < 100");
    ExecuteDeletStatement(&hStmt,(UCHAR*) "DELETE FROM EMP WHERE EMPNO<100");
    ExecuteSimple_Select(&hStmt,(UCHAR*) "SELECT EMPNO,ENAME,JOB,MGR,HIREDATE FROM EMP where empno = 7369");
    /* Close the connection */
    Disconnect(&hEnv,&hDBC,&hStmt);
    /* Clean up */
    free(hEnv);
    free(hDBC);
    free(hStmt);
    return 0;
}

Kode berikut merupakan contoh dari Test2:

int main(int argc, char* argv[])
{
    /* Definitions */
    RETCODE rCode;
    SQLUSMALLINT a;
    SQLINTEGER Num1IndOrLen;
    SQLSMALLINT iTotCols = 0;
    int j;
    SDWORD cbData;
    /* Initialization */
    HENV *hEnv = (HENV*)malloc(sizeof(HENV));
    HDBC *hDBC = (HDBC*)malloc(sizeof(HDBC));
    HSTMT *hStmt = (HSTMT*)malloc(sizeof(HSTMT));
    HSTMT *hStmt1 = (HSTMT*)malloc(sizeof(HSTMT));
    /* Establish a connection */
    Connect("POLARDB","user","***",&hEnv,&hDBC);
    rCode = SQLAllocStmt(*hDBC,hStmt);
    rCode = SQLAllocStmt(*hDBC,hStmt1);
    rCode = SQLAllocHandle(SQL_HANDLE_STMT,*hDBC,hStmt);
    rCode = SQLAllocHandle(SQL_HANDLE_STMT,*hDBC,hStmt1);
    /* Begin */
    ExecuteSimple_Select(&hStmt1,(UCHAR*) "BEGIN;");
    /* Prepare */
    RETCODE rc = SQLPrepare((*hStmt),(SQLCHAR*)"{ call refcur_inout_callee2(?,?)}",SQL_NTS);
    rc = SQLBindParameter((*hStmt),1, SQL_PARAM_INPUT_OUTPUT, SQL_C_CHAR,SQL_REFCURSOR,0, 31,
                strName, 31, &Num1IndOrLen);
    rc = SQLBindParameter((*hStmt),2, SQL_PARAM_INPUT_OUTPUT, SQL_C_CHAR,SQL_REFCURSOR,0, 31,
                    &strName1, 31, &Num1IndOrLen);
    Num1IndOrLen=0;
    /* Execute */
    rc = SQLExecute((*hStmt));
    if(rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO)
    {
        printf("\nstrName _________ = %s\n",strName);
        printf("\nstrName 1_________ = %s\n",strName1);
    }
    printf("\n First Cursor as OUT Parameter \n")   ;