SAP sybase16 安裝的一些細節問題

安裝前html

建立sybase用戶以及目錄java

mkdir /opt/sybase linux

useradd -d /opt/sybase sybasesql

chown -R sybase:sybase /opt/sybase數據庫

安裝教程:Linux下安裝Sybase ASE 16
1、沒法進入圖形界面bash

在超級用戶下:
# xhost +

而後在sybase用戶下ui

sybase@mymotif-ThinkPad-X240:~$export display=:0.0

如還有問題那就要檢查X11所需的依賴包是否安裝完整url

2、安裝後設置環境變量spa

cat /opt/sybase/SYBASE.sh >>~/.bashrcunix

啓動服務:

 $SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_MYMOTIFTHINKPADX240

在非sybase用戶下啓動

su - sybase -c "source /opt/sybase/SYBASE.sh;/opt/sybase/ASE-16_0/bin/startserver -f/opt/sybase/ASE-16_0/install/RUN_MYMOTIFTHINKPADX240"

su - sybase -c "source /opt/sybase/SYBASE.sh;/opt/sybase/ASE-16_0/bin/startserver -f/opt/sybase/ASE-16_0/install/RUN_MYMOTIFTHINKPADX240_BS"

su - sybase -c "source /opt/sybase/SYBASE.sh;$SYBASE/$SYBASE_ASE/bin/startserver -f$SYBASE/$SYBASE_ASE/install/RUN_MYMOTIFTHINKPADX240"

su - sybase -c "source /opt/sybase/SYBASE.sh;$SYBASE/$SYBASE_ASE/bin/startserver -f$SYBASE/$SYBASE_ASE/install/RUN_MYMOTIFTHINKPADX240_BS"

 

3、安裝時選擇中文utf8字符集執行isql出錯

$ isql -S服務名 -Usa -P密碼

 

The context allocation routine failed when it tried to load localization files!!

One or more following problems may caused the failure

 

Your sybase home directory is /opt/sybase. Check the environment variable SYBASE if it is not the one you want!

Using locale name "zh_CN.UTF-8" defined in environment variable LANG

Locale name "zh_CN.UTF-8" doesn't exist in your /opt/sybase/locales/locales.dat file

An error occurred when attempting to allocate localization-related structures.

修改

在/opt/sybase/locales/locales.dat文件中的

[linux]字段中追加

        locale = zh_CN.UTF-8, chinese, utf8

如已安裝unixodbc則將/usr/bin/isql更名

設置環境變量

export SYBASE=/opt/sybase

 

4、使用

在.bashrc最後加

alias isql='/usr/bin/rlwrap isql'

可支持isql命令回調等功能

建立設備

disk init name="testdb_dbdev",physname="/opt/sybase/data/testdb_dbdev.dat",vdevno=10,size=10240 

go 

 

disk init name="testdb_logdev",physname="/opt/sybase/data/testdb_logdev.dat",vdevno=11,size=5120 

go 

建立數據庫

create database testdb on testdb_dbdev=20 log on testdb_logdev=10 

go 

1> sp_addlogin mymotif,wxwpxh

2> go

1> sp_role 'grant',oper_role,mymotif

2> go

建立用戶並使之成爲新建數據庫的擁有者,而且數據庫爲其默認數據庫

1> use testdb

2> go

1> sp_changedbowner mymotif

2> go

1> sp_modifylogin mymotif,defdb,testdb 

2> go

1> sp_modifylogin mymotif,deflanguage,chinese

2> go

建表

/*drop SC */
if exists (select 1 from sysobjects where name = 'SC')
begin
  drop table SC
  print "table SC is dropped..."
end
go

/* COURSE */
if exists (select 1 from sysobjects where name = 'COURSE')
begin
  drop table COURSE
  print "table COURSE is rebuilded..."
end
go
create table COURSE (
  CNO char(6) primary key,
  CNAME char(18) NOT NULL,
  TEACHER char(12) NOT NULL,
  TIME smallint NOT NULL) 
go
/* STUDENT */
if exists (select 1 from sysobjects where name = 'STUDENT')
begin
  drop table STUDENT
  print "table STUDENT is rebuilded..."
end
go


CREATE TABLE STUDENT (
  SNO char(7) primary key,
  SNAME char(12) NOT NULL,
  SEX char(3) NOT NULL,
  BDATE date DEFAULT NULL,
  DIR char(18) DEFAULT NULL
) 
go


/*create SC */
create table SC(
  SNO char(7) NOT NULL,
  CNO char(6) NOT NULL,
  GRADE decimal(6,2) DEFAULT NULL,
  foreign key(SNO) REFERENCES STUDENT(SNO),
  foreign key(CNO) REFERENCES COURSE(CNO),
  CONSTRAINT uc_SC UNIQUE (SNO,CNO)
)
go

sql腳本執行

$ isql -S服務名 -U用戶 -P密碼 -i腳本全路徑

isql -SMYMOTIFTHINKPADX240 -Umymotif -Pwxwpxh -i sybtestdb.sql

JDBC例子:

 

package www.zjptcc.wxw.jdbctest.syb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class QueryCourse {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成的方法存根
		try {
			Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
			String url = "jdbc:sybase:Tds:localhost:5000/testdb";// 數據庫名
			Connection conn = DriverManager.getConnection(url, "mymotif","wxwpxh");
			Statement st = conn.createStatement();
			String sql = "SELECT * FROM COURSE"; // 表
			ResultSet rs = st.executeQuery(sql);
            int col_count=st.getResultSet().getMetaData().getColumnCount();
			while (rs.next()) {
                for(int row=1;row<=col_count;row++){
                    System.out.print(rs.getString(row));
                    System.out.print("  ");
                }
                System.out.println();
			}
			rs.close();
			st.close();
			conn.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}

}
相關文章
相關標籤/搜索