go_ora

package module
v2.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TNS_TYPE_REP_NATIVE    int16 = 0
	TNS_TYPE_REP_UNIVERSAL int16 = 1
	TNS_TYPE_REP_ORACLE    int16 = 10
	TNS_DATA_TYPE_UB2      int16 = 25
	TNS_DATA_TYPE_UB4      int16 = 26
	TNS_DATA_TYPE_SB1      int16 = 27
	TNS_DATA_TYPE_SB2      int16 = 28
	TNS_DATA_TYPE_SB4      int16 = 29
	TNS_DATA_TYPE_SWORD    int16 = 30
	TNS_DATA_TYPE_UWORD    int16 = 31
	TNS_DATA_TYPE_PTRB     int16 = 32
	TNS_DATA_TYPE_PTRW     int16 = 33
	TNS_DATA_TYPE_TIDDEF   int16 = 10
)

Variables

This section is empty.

Functions

func BuildJDBC

func BuildJDBC(user, password, connStr string, options map[string]string) string

BuildJDBC create url from user, password and JDBC description string

func BuildUrl

func BuildUrl(server string, port int, service, user, password string, options map[string]string) string

BuildUrl create databaseURL from server, port, service, user, password, urlOptions this function help build a will formed databaseURL and accept any character as it convert special charters to corresponding values in URL

func NewWallet

func NewWallet(filePath string) (*wallet, error)

NewWallet create new wallet object from file path

func RegisterType

func RegisterType(conn *sql.DB, typeName, arrayTypeName string, typeObj interface{}) error

func RegisterTypeWithOwner

func RegisterTypeWithOwner(conn *sql.DB, owner, typeName, arrayTypeName string, typeObj interface{}) error

func SetNTSAuth

func SetNTSAuth(newNTSManager advanced_nego.NTSAuthInterface)

func TZBytes

func TZBytes() []byte

func WrapRefCursor

func WrapRefCursor(ctx context.Context, q Querier, cursor *RefCursor) (*sql.Rows, error)

Types

type AuthObject

type AuthObject struct {
	EServerSessKey string
	EClientSessKey string
	EPassword      string
	ESpeedyKey     string
	ServerSessKey  []byte
	ClientSessKey  []byte
	KeyHash        []byte
	Salt           string

	VerifierType int
	// contains filtered or unexported fields
}

E infront of the variable means encrypted

func (*AuthObject) Write

func (obj *AuthObject) Write(connOption *network.ConnectionOption, mode LogonMode, session *network.Session) error

write authentication data to network

type AuthType

type AuthType int
const (
	Normal   AuthType = 0
	OS       AuthType = 1
	Kerberos AuthType = 2
	TCPS     AuthType = 3
)

type BFile

type BFile struct {
	// contains filtered or unexported fields
}

func NewBFile

func NewBFile(connection *Connection, dirName, fileName string) (*BFile, error)

func (*BFile) Close

func (file *BFile) Close() error

func (*BFile) Exists

func (file *BFile) Exists() (bool, error)

func (*BFile) GetLength

func (file *BFile) GetLength() (int64, error)

func (*BFile) IsOpen

func (file *BFile) IsOpen() bool

func (*BFile) Open

func (file *BFile) Open() error

func (*BFile) Read

func (file *BFile) Read() ([]byte, error)

func (*BFile) ReadBytesFromPos

func (file *BFile) ReadBytesFromPos(pos, count int64) ([]byte, error)

func (*BFile) ReadFromPos

func (file *BFile) ReadFromPos(pos int64) ([]byte, error)

func (*BFile) Scan

func (file *BFile) Scan(value interface{}) error

type Blob

type Blob struct {
	Data  []byte
	Valid bool
	// contains filtered or unexported fields
}

func (Blob) MarshalJSON

func (val Blob) MarshalJSON() ([]byte, error)

func (*Blob) Scan

func (val *Blob) Scan(value interface{}) error

func (*Blob) UnmarshalJSON

func (val *Blob) UnmarshalJSON(data []byte) error

type BulkCopy

type BulkCopy struct {
	TableName     string
	SchemaName    string
	PartitionName string
	ColumnNames   []string
	// contains filtered or unexported fields
}

func NewBulkCopy

func NewBulkCopy(conn *Connection, tableName string) *BulkCopy

func (*BulkCopy) Abort

func (bulk *BulkCopy) Abort() error

func (*BulkCopy) AddRow

func (bulk *BulkCopy) AddRow(values ...interface{}) error

func (*BulkCopy) Commit

func (bulk *BulkCopy) Commit() error

func (*BulkCopy) EndStream

func (bulk *BulkCopy) EndStream() error

func (*BulkCopy) StartStream

func (bulk *BulkCopy) StartStream() error

type Clob

type Clob struct {
	String string
	Valid  bool
	// contains filtered or unexported fields
}

func (Clob) MarshalJSON

func (val Clob) MarshalJSON() ([]byte, error)

func (*Clob) Scan

func (val *Clob) Scan(value interface{}) error

func (*Clob) UnmarshalJSON

func (val *Clob) UnmarshalJSON(data []byte) error

type Connection

type Connection struct {
	State     ConnectionState
	LogonMode LogonMode

	SessionProperties map[string]string

	NLSData NLSData
	// contains filtered or unexported fields
}

func NewConnection

func NewConnection(databaseUrl string) (*Connection, error)

NewConnection create a new connection from databaseURL string

func (*Connection) Begin

func (conn *Connection) Begin() (driver.Tx, error)

Begin a transaction

func (*Connection) BeginTx

func (conn *Connection) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error)

func (*Connection) BulkInsert

func (conn *Connection) BulkInsert(sqlText string, rowNum int, columns ...[]driver.Value) (*QueryResult, error)

BulkInsert mass insert column values into a table all columns should pass as an array of values

func (*Connection) CheckNamedValue

func (conn *Connection) CheckNamedValue(_ *driver.NamedValue) error

func (*Connection) Close

func (conn *Connection) Close() (err error)

Close the connection by disconnect network session

func (*Connection) Exec

func (conn *Connection) Exec(text string, args ...driver.Value) (driver.Result, error)

func (*Connection) ExecContext

func (conn *Connection) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error)

func (*Connection) GetNLS

func (conn *Connection) GetNLS() (*NLSData, error)

GetNLS return NLS properties of the connection. this function is left from v1. but v2 is using another method

func (*Connection) Open

func (conn *Connection) Open() error

Open the connection = bring it online

func (*Connection) OpenWithContext

func (conn *Connection) OpenWithContext(ctx context.Context) error

OpenWithContext open the connection with timeout context

func (*Connection) Ping

func (conn *Connection) Ping(ctx context.Context) error

Ping test if connection is online

func (*Connection) Prepare

func (conn *Connection) Prepare(query string) (driver.Stmt, error)

Prepare take a query string and create a stmt object

func (*Connection) PrepareContext

func (conn *Connection) PrepareContext(ctx context.Context, query string) (driver.Stmt, error)

func (*Connection) QueryContext

func (conn *Connection) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error)

func (*Connection) QueryRowContext

func (conn *Connection) QueryRowContext(ctx context.Context, query string, args []driver.NamedValue) *DataSet

func (*Connection) RegisterType

func (conn *Connection) RegisterType(typeName, arrayTypeName string, typeObj interface{}) error

RegisterType register user defined type with owner equal to user id

func (*Connection) RegisterTypeWithOwner

func (conn *Connection) RegisterTypeWithOwner(owner, typeName, arrayTypeName string, typeObj interface{}) error

RegisterTypeWithOwner take typename, owner and go type object and make an information structure that used to create a new type during query and store values in it

DataType of UDT field that can be manipulated by this function are: NUMBER, VARCHAR2, NVARCHAR2, TIMESTAMP, DATE AND RAW

func (*Connection) ResetSession

func (conn *Connection) ResetSession(ctx context.Context) error

func (*Connection) SetStringConverter

func (conn *Connection) SetStringConverter(converter converters.IStringConverter)

SetStringConverter this function is used to set a custom string converter interface that will be used to encode and decode strings and bytearrays

func (*Connection) StructsInsert

func (conn *Connection) StructsInsert(sqlText string, values []interface{}) (*QueryResult, error)

StructsInsert support interface{} array

type ConnectionState

type ConnectionState int
const (
	Closed ConnectionState = 0
	Opened ConnectionState = 1
)

type ConnectionString

type ConnectionString struct {
	DataSource   string
	Host         string
	Port         int
	DBAPrivilege DBAPrivilege

	Trace      string // Trace file
	WalletPath string
	// contains filtered or unexported fields
}

type DBAPrivilege

type DBAPrivilege int
const (
	NONE    DBAPrivilege = 0
	SYSDBA  DBAPrivilege = 0x20
	SYSOPER DBAPrivilege = 0x40
)

func DBAPrivilegeFromString

func DBAPrivilegeFromString(s string) DBAPrivilege

type DBVersion

type DBVersion struct {
	Info            string
	Text            string
	Number          uint16
	MajorVersion    int
	MinorVersion    int
	PatchsetVersion int
	// contains filtered or unexported fields
}

func GetDBVersion

func GetDBVersion(session *network.Session) (*DBVersion, error)

GetDBVersion write a request to get database version the read database version from network session

type DataSet

type DataSet struct {
	Cols []ParameterInfo
	// contains filtered or unexported fields
}

func (*DataSet) Close

func (dataSet *DataSet) Close() error

func (*DataSet) ColumnTypeDatabaseTypeName

func (dataSet *DataSet) ColumnTypeDatabaseTypeName(index int) string

ColumnTypeDatabaseTypeName return Col DataType name

func (*DataSet) ColumnTypeLength

func (dataSet *DataSet) ColumnTypeLength(index int) (int64, bool)

ColumnTypeLength return length of column type

func (*DataSet) ColumnTypeNullable

func (dataSet *DataSet) ColumnTypeNullable(index int) (nullable, ok bool)

ColumnTypeNullable return if column allow null or not

func (*DataSet) ColumnTypePrecisionScale

func (dataSet *DataSet) ColumnTypePrecisionScale(index int) (int64, int64, bool)

ColumnTypePrecisionScale return the precision and scale for numeric types

func (*DataSet) ColumnTypeScanType

func (dataSet *DataSet) ColumnTypeScanType(index int) reflect.Type

func (*DataSet) Columns

func (dataSet *DataSet) Columns() []string

Columns return a string array that represent columns names

func (*DataSet) Err

func (dataSet *DataSet) Err() error

func (*DataSet) Next

func (dataSet *DataSet) Next(dest []driver.Value) error

Next implement method need for sql.Rows interface

func (*DataSet) Next_

func (dataSet *DataSet) Next_() bool

Next_ act like Next in sql package return false if no other rows in dataset

func (*DataSet) Scan

func (dataSet *DataSet) Scan(dest ...interface{}) error

Scan act like scan in sql package return row values to dest variable pointers

func (*DataSet) Trace

func (dataSet *DataSet) Trace(t trace.Tracer)

type DataTypeNego

type DataTypeNego struct {
	MessageCode        uint8
	Server             *TCPNego
	TypeAndRep         []int16
	RuntimeTypeAndRep  []int16
	DataTypeRepFor1100 int16
	DataTypeRepFor1200 int16
	CompileTimeCaps    []byte
	RuntimeCap         []byte
	DBTimeZone         []byte
	// contains filtered or unexported fields
}

type Lob

type Lob struct {
	// contains filtered or unexported fields
}

func (*Lob) GetLobId

func (lob *Lob) GetLobId(locator []byte) []byte

type LogonMode

type LogonMode int
const (
	NoNewPass   LogonMode = 0x1
	SysDba      LogonMode = 0x20
	SysOper     LogonMode = 0x40
	UserAndPass LogonMode = 0x100
)

type NClob

type NClob Clob

func (NClob) MarshalJSON

func (val NClob) MarshalJSON() ([]byte, error)

func (*NClob) Scan

func (val *NClob) Scan(value interface{}) error

func (*NClob) UnmarshalJSON

func (val *NClob) UnmarshalJSON(data []byte) error

type NLSData

type NLSData struct {
	Calender        string `db:"p_nls_calendar,,40,out"`
	Comp            string `db:"p_nls_comp,,40,out"`
	Language        string
	LengthSemantics string `db:"p_nls_length_semantics,,40,out"`
	NCharConvExcep  string `db:"p_nls_nchar_conv_excep,,40,out"`
	NCharConvImp    string
	DateLang        string `db:"p_nls_date_lang,,40,out"`
	Sort            string `db:"p_nls_sort,,40,out"`
	Currency        string `db:"p_nls_currency,,40,out"`
	DateFormat      string `db:"p_nls_date_format,,40,out"`
	TimeFormat      string
	IsoCurrency     string `db:"p_nls_iso_currency,,40,out"`
	NumericChars    string `db:"p_nls_numeric_chars,,40,out"`
	DualCurrency    string `db:"p_nls_dual_currency,,40,out"`
	UnionCurrency   string
	Timestamp       string `db:"p_nls_timestamp,,48,out"`
	TimestampTZ     string `db:"p_nls_timestamp_tz,,56,out"`
	TTimezoneFormat string
	NTimezoneFormat string
	Territory       string
	Charset         string
}

func (*NLSData) SaveNLSValue

func (nls *NLSData) SaveNLSValue(key, value string, code int)

SaveNLSValue a helper function that convert between nls key and code

type NVarChar

type NVarChar string

func (NVarChar) MarshalJSON

func (val NVarChar) MarshalJSON() ([]byte, error)

func (*NVarChar) Scan

func (val *NVarChar) Scan(value interface{}) error

func (*NVarChar) UnmarshalJSON

func (val *NVarChar) UnmarshalJSON(data []byte) error

func (*NVarChar) Value

func (val *NVarChar) Value() (driver.Value, error)

type NullNVarChar

type NullNVarChar struct {
	NVarChar NVarChar
	Valid    bool
}

func (NullNVarChar) MarshalJSON

func (val NullNVarChar) MarshalJSON() ([]byte, error)

func (*NullNVarChar) Scan

func (val *NullNVarChar) Scan(value interface{}) error

func (*NullNVarChar) UnmarshalJSON

func (val *NullNVarChar) UnmarshalJSON(data []byte) error

func (NullNVarChar) Value

func (val NullNVarChar) Value() (driver.Value, error)

type NullTimeStamp

type NullTimeStamp struct {
	TimeStamp TimeStamp
	Valid     bool
}

func (NullTimeStamp) MarshalJSON

func (val NullTimeStamp) MarshalJSON() ([]byte, error)

func (*NullTimeStamp) Scan

func (val *NullTimeStamp) Scan(value interface{}) error

func (*NullTimeStamp) UnmarshalJSON

func (val *NullTimeStamp) UnmarshalJSON(data []byte) error

func (NullTimeStamp) Value

func (val NullTimeStamp) Value() (driver.Value, error)

type NullTimeStampTZ

type NullTimeStampTZ struct {
	TimeStampTZ TimeStampTZ
	Valid       bool
}

func (NullTimeStampTZ) MarshalJSON

func (val NullTimeStampTZ) MarshalJSON() ([]byte, error)

func (*NullTimeStampTZ) Scan

func (val *NullTimeStampTZ) Scan(value interface{}) error

func (*NullTimeStampTZ) UnmarshalJSON

func (val *NullTimeStampTZ) UnmarshalJSON(data []byte) error

func (NullTimeStampTZ) Value

func (val NullTimeStampTZ) Value() (driver.Value, error)

type OracleConnector

type OracleConnector struct {
	// contains filtered or unexported fields
}

func (*OracleConnector) Connect

func (connector *OracleConnector) Connect(ctx context.Context) (driver.Conn, error)

func (*OracleConnector) Dialer

func (connector *OracleConnector) Dialer(dialer network.DialerContext)

func (*OracleConnector) Driver

func (connector *OracleConnector) Driver() driver.Driver

type OracleDriver

type OracleDriver struct {

	//Conn      *Connection
	//Server    string
	//Port      int
	//Instance  string
	//Service   string
	//DBName    string
	UserId string
	// contains filtered or unexported fields
}

func (*OracleDriver) Open

func (drv *OracleDriver) Open(name string) (driver.Conn, error)

Open return a new open connection

func (*OracleDriver) OpenConnector

func (drv *OracleDriver) OpenConnector(name string) (driver.Connector, error)

type Out

type Out struct {
	Dest driver.Value
	Size int
	In   bool
}

type PLBool

type PLBool bool

type ParameterDirection

type ParameterDirection int
const (
	Input  ParameterDirection = 1
	Output ParameterDirection = 2
	InOut  ParameterDirection = 3
)

type ParameterInfo

type ParameterInfo struct {
	Name                 string
	TypeName             string
	Direction            ParameterDirection
	IsNull               bool
	AllowNull            bool
	ColAlias             string
	DataType             TNSType
	IsXmlType            bool
	Flag                 uint8
	Precision            uint8
	Scale                uint8
	MaxLen               int
	MaxCharLen           int
	MaxNoOfArrayElements int
	ContFlag             int
	ToID                 []byte
	Version              int
	CharsetID            int
	CharsetForm          int
	BValue               []byte
	Value                driver.Value

	OutputVarPtr interface{}
	// contains filtered or unexported fields
}

type ParameterType

type ParameterType int
const (
	Number ParameterType = 1
	String ParameterType = 2
)

type PromotableTransaction

type PromotableTransaction int

type Querier

type Querier interface {
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
}

Querier is the QueryContext of sql.Conn.

type QueryResult

type QueryResult struct {
	// contains filtered or unexported fields
}

func (*QueryResult) LastInsertId

func (rs *QueryResult) LastInsertId() (int64, error)

func (*QueryResult) RowsAffected

func (rs *QueryResult) RowsAffected() (int64, error)

type RefCursor

type RefCursor struct {
	MaxRowSize int
	// contains filtered or unexported fields
}

func (*RefCursor) CanAutoClose

func (stmt *RefCursor) CanAutoClose() bool

func (*RefCursor) Close

func (stmt *RefCursor) Close() error

Close stmt cursor in the server

func (*RefCursor) Query

func (cursor *RefCursor) Query() (*DataSet, error)

type Row

type Row []driver.Value

type Stmt

type Stmt struct {
	// contains filtered or unexported fields
}

func NewStmt

func NewStmt(text string, conn *Connection) *Stmt

NewStmt create new stmt and set its connection properties

func (*Stmt) CanAutoClose

func (stmt *Stmt) CanAutoClose() bool

func (*Stmt) CheckNamedValue

func (stmt *Stmt) CheckNamedValue(_ *driver.NamedValue) error

func (*Stmt) Close

func (stmt *Stmt) Close() error

Close stmt cursor in the server

func (*Stmt) Exec

func (stmt *Stmt) Exec(args []driver.Value) (driver.Result, error)

Exec execute stmt (INSERT, UPDATE, DELETE, DML, PLSQL) and return driver.Result object

func (*Stmt) ExecContext

func (stmt *Stmt) ExecContext(ctx context.Context, args []driver.NamedValue) (driver.Result, error)

func (*Stmt) NewParam

func (stmt *Stmt) NewParam(name string, val driver.Value, size int, direction ParameterDirection) (*ParameterInfo, error)

func (*Stmt) NumInput

func (stmt *Stmt) NumInput() int

func (*Stmt) Query

func (stmt *Stmt) Query(args []driver.Value) (driver.Rows, error)

Query execute a query command and return dataset object in form of driver.Rows interface

args is an array of values that corresponding to parameters in sql

func (*Stmt) QueryContext

func (stmt *Stmt) QueryContext(ctx context.Context, namedArgs []driver.NamedValue) (driver.Rows, error)

func (*Stmt) Query_

func (stmt *Stmt) Query_(namedArgs []driver.NamedValue) (*DataSet, error)

Query_ execute a query command and return oracle dataset object

args is an array of values that corresponding to parameters in sql

type StmtInterface

type StmtInterface interface {
	Close() error
	CanAutoClose() bool
	// contains filtered or unexported methods
}

type StmtType

type StmtType int
const (
	SELECT StmtType = 1
	DML    StmtType = 2
	PLSQL  StmtType = 3
	OTHERS StmtType = 4
)

type TCPNego

type TCPNego struct {
	MessageCode           uint8
	ProtocolServerVersion uint8
	ProtocolServerString  string
	OracleVersion         int
	ServerCharset         int
	ServerFlags           uint8
	CharsetElem           int
	ServernCharset        int
	ServerCompileTimeCaps []byte
	ServerRuntimeCaps     []byte
}

type TNSType

type TNSType int
const (
	NCHAR    TNSType = 1
	NUMBER   TNSType = 2
	BInteger TNSType = 3
	//SB1              TNSType = 3
	//SB2              TNSType = 3
	//SB4              TNSType = 3
	FLOAT            TNSType = 4
	NullStr          TNSType = 5
	VarNum           TNSType = 6
	LONG             TNSType = 8
	VARCHAR          TNSType = 9
	ROWID            TNSType = 11
	DATE             TNSType = 12
	VarRaw           TNSType = 15
	BFloat           TNSType = 21
	BDouble          TNSType = 22
	RAW              TNSType = 23
	LongRaw          TNSType = 24
	UINT             TNSType = 68
	LongVarChar      TNSType = 94
	LongVarRaw       TNSType = 95
	CHAR             TNSType = 96
	CHARZ            TNSType = 97
	IBFloat          TNSType = 100
	IBDouble         TNSType = 101
	REFCURSOR        TNSType = 102
	OCIXMLType       TNSType = 108
	XMLType          TNSType = 109
	OCIRef           TNSType = 110
	OCIClobLocator   TNSType = 112
	OCIBlobLocator   TNSType = 113
	OCIFileLocator   TNSType = 114
	ResultSet        TNSType = 116
	OCIString        TNSType = 155
	OCIDate          TNSType = 156
	TimeStampDTY     TNSType = 180
	TimeStampTZ_DTY  TNSType = 181
	IntervalYM_DTY   TNSType = 182
	IntervalDS_DTY   TNSType = 183
	TimeTZ           TNSType = 186
	TIMESTAMP        TNSType = 187
	TIMESTAMPTZ      TNSType = 188
	IntervalYM       TNSType = 189
	IntervalDS       TNSType = 190
	UROWID           TNSType = 208
	TimeStampLTZ_DTY TNSType = 231
	TimeStampeLTZ    TNSType = 232
	Boolean          TNSType = 0xFC
)

func (TNSType) String

func (i TNSType) String() string

type TimeStamp

type TimeStamp time.Time

func (TimeStamp) MarshalJSON

func (val TimeStamp) MarshalJSON() ([]byte, error)

func (*TimeStamp) Scan

func (val *TimeStamp) Scan(value interface{}) error

func (*TimeStamp) UnmarshalJSON

func (val *TimeStamp) UnmarshalJSON(data []byte) error

func (*TimeStamp) Value

func (val *TimeStamp) Value() (driver.Value, error)

type TimeStampTZ

type TimeStampTZ time.Time

func (TimeStampTZ) MarshalJSON

func (val TimeStampTZ) MarshalJSON() ([]byte, error)

func (*TimeStampTZ) Scan

func (val *TimeStampTZ) Scan(value interface{}) error

func (*TimeStampTZ) UnmarshalJSON

func (val *TimeStampTZ) UnmarshalJSON(data []byte) error

func (*TimeStampTZ) Value

func (val *TimeStampTZ) Value() (driver.Value, error)

type Transaction

type Transaction struct {
	// contains filtered or unexported fields
}

func (*Transaction) Commit

func (tx *Transaction) Commit() error

func (*Transaction) Rollback

func (tx *Transaction) Rollback() error

type ValueEncoder

type ValueEncoder interface {
	EncodeValue(param *ParameterInfo, connection *Connection) error
}

Directories

Path Synopsis
ntlmssp
Package ntlmssp provides NTLM/Negotiate authentication over HTTP
Package ntlmssp provides NTLM/Negotiate authentication over HTTP
security/md4
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL