`
jin8000608172
  • 浏览: 139877 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle位操作

阅读更多
public void addFlagBit(Long flagBit) {
		this.flagBit |= flagBit.longValue();
	}
	public void removeFlagBit(long flagBit) {
		this.flagBit &= flagBit ^ Long.MAX_VALUE;
	}

<update id="addMemberFlagBit" parameterType="map">
        update member set flag_bit = (flag_bit + ${flagBit}) - bitand(flag_bit, ${flagBit}) where id = #{memberId}
    </update>
    <update id="clearMemberFlagBit" parameterType="map">
        update member set flag_bit = bitand(flag_bit, ${flagBit}) where id = #{memberId}
    </update>



package com.xxx.member.common.constant;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.xxxpiao.common.entity.enumerated.Game;
import com.xxxpiao.common.entity.enumerated.OperType;

/**
 * 如果1个long flagBit字段不够,再增加多1/2个flagBit字段,
 * 64bit+64bit+64bit = 192bit,可以搞定大部分相似变化,比单一字段只表示有限单一意义的利用率高很多。
 * 
 * 这里常量和features内里由**和**来设计/增加业务,两人要管理和搭配好/分派好/互动沟通好vipuser.flagBit,
 * member.flagBit负责单个帐号相关的重要/基础/安全性/系统性功能/用户指定前台配置,vipuser.flagBit负责同一自然人多个帐号的处理和促销/活动功能
 * vipuser.flagBit一些已过期活动占用的flagBit也可回收重复利用到别的功能和活动
 * 
 * VipUserFlagBitConstant.java 中有更多说明
 * {@see com.xxx.vip.common.constant.flagbit.VipUserFlagBitConstant}
 * 
 * 参考资料:
 * <ul>
 * <li>http://wiki.inzwc.com/wiki/index.php/ArchAndBiz 能否通过标识/精致数据急剧滤掉大部分IO次数和高消耗</li>
 * </ul>
 * 
 * @author **
 *
 */
public class MemberFlagBitConstant {
	// 是否加密身份证号
	public static long encryptCertNo = 1;
	// 是否加密电话号码
	public static long encryptPhone = 1 << 2;
	// 是否加密email
	public static long encryptEmail = 1 << 3;
	// 是否加密im通讯工具
	public static long encryptIm = 1 << 4;
	// 是否开通手机号登录服务
	public static long phoneLoginOpen = 1 << 5;

	/** 是否开通投注邮件通知 **/
	public static long betEmailNotifyOpen = 1 << 6;
	
	/**
	 * 已通过短信下发/客服回拨方式验证手机号是真实的
	 */
	public static long confirmed_mobile = 1 << 7;
	
	/**
	 * 已通过让用户上传拍照身份证方式确认身份证是真实的
	 */
	public static long confirmed_certNo = 1 << 8;
	
	/**
	 * 此帐户已被发现存在多个根据手机号/身份证号等确定的东西或蛛丝马迹发现有关联帐号,
	 * 进一步信息需从vip系统或安全系统中获取
	 */
	public static long haveMultiAccountFound = 1 << 9;
	
	/** 标识有信用卡充值 **/
	public static long creditcardCharge = 1 << 10;

    /**是否启用了投注凭证*/
    public static long enable_bet_vouch = 1 << 11;
   
    /**
     * 是否是北京单场大户1。vip = very important person
     * 
     * 请通过IDE的索引查找到相应的规则
     */
    public static long gameBD_vip_1 = 1 << 12;
    
    public static long gameJZ_vip_1 = 1 << 13;
    
    public static long gameDCSF_vip_1 = 1 << 14;
    
    /***
     * 新会员是否已经充值
     */
    public static long newMemberIsCharge = 1 << 15;
    /**
     * 验证邮箱
     */
    public static long validateMemberEmail=1 << 16;
    
    /**
     * 是否绑定手机短信投注系统(smsbet)
     */
    public static long bindSmsbetSystem = 1 << 17;
    
    /**
	 * 类型
	 */
	private Long index;
	/**
	 * 类型名称
	 */
	private String name;
	public MemberFlagBitConstant(Long index, String name) {
		this.index = index;
		this.name = name;
	}
	/*************以下可配置在admin后台管理配置功能**************/
	public final static MemberFlagBitConstant  VALIDATE_MEMBER_EMAIL = new MemberFlagBitConstant(validateMemberEmail,"验证邮箱");
	public final static MemberFlagBitConstant  BIND_SMS_BET_SYSTEM = new MemberFlagBitConstant(bindSmsbetSystem,"是否绑定手机短信投注系统");
	
	/** 功能对应的位标记值 **/
	public static Map<Long,MemberFlagBitConstant> memberFlagBitConfigMap = new HashMap<Long,MemberFlagBitConstant>();
    static{
    	memberFlagBitConfigMap.put(VALIDATE_MEMBER_EMAIL.getIndex(), VALIDATE_MEMBER_EMAIL);
    	memberFlagBitConfigMap.put(BIND_SMS_BET_SYSTEM.getIndex(), BIND_SMS_BET_SYSTEM);
    }
 
	/**
     * 某会员配置的功能
     * @return
     */
    public static List<MemberFlagBitConstant> getMemberFlagBitByFlagBit(long optionConstant){
    	List<MemberFlagBitConstant> flagbits = new ArrayList<MemberFlagBitConstant>();
    	for(Long key:memberFlagBitConfigMap.keySet()){
    		if(MemberFlagBitConstant.isExistFlagBit(key, optionConstant)){
    			flagbits.add(memberFlagBitConfigMap.get(key));
    		}
    	}
    	return flagbits;
    }
	public static List<MemberFlagBitConstant> getAll(){
		List<MemberFlagBitConstant> list = new ArrayList<MemberFlagBitConstant>();
		for(Long key:memberFlagBitConfigMap.keySet()){
			list.add(memberFlagBitConfigMap.get(key));
		}
		return list;
	}
    
    
    
	public static boolean isEncryptCertNo(long optionConstant) {
		return (optionConstant & encryptCertNo) > 0;
	}

	public static boolean isEncryptPhone(long optionConstant) {
		return (optionConstant & encryptPhone) > 0;
	}

	public static boolean isEncryptEmail(long optionConstant) {
		return (optionConstant & encryptEmail) > 0;
	}

	public static boolean isEncryptIm(long optionConstant) {
		return (optionConstant & encryptIm) > 0;
	}

	public static boolean isPhoneLoginOpen(long optionConstant) {
		return (optionConstant & phoneLoginOpen) > 0;
	}

	public static boolean isBetEmailNotifyOpen(long optionConstant) {
		return (optionConstant & betEmailNotifyOpen) > 0;
	}
	public static boolean isCreditcardCharge(long optionConstant) {
		return (optionConstant & creditcardCharge) > 0;
	}
    public static boolean isEnableBetVouch(long optionConstant) {
        return (optionConstant & enable_bet_vouch) > 0;
    }
    public static boolean isGameBD_vip_1(long optionConstant) {
    	return (optionConstant & gameBD_vip_1) > 0;
    }
    public static boolean isBind_Sms_Bet_System(long optionConstant) {
    	return (optionConstant & bindSmsbetSystem) > 0;
    }
    public static boolean isGameJZ_vip_1(long optionConstant) {
    	return (optionConstant & gameJZ_vip_1) > 0;
    }
    public static boolean isGameDCSF_vip_1(long optionConstant) {
    	return (optionConstant & gameDCSF_vip_1) > 0;
    }
    public static long getGame_vip_flag(long optionConstant) {
    	if ((optionConstant & gameBD_vip_1 ) > 0 ) {
    		return gameBD_vip_1;
		}else if ((optionConstant& gameJZ_vip_1) > 0) {
			return gameJZ_vip_1;
		}else if ((optionConstant& gameDCSF_vip_1) > 0) {
			return gameDCSF_vip_1;
		}
    	return 0;
    }
	public static boolean isNewMemberIsCharge(long optionConstant) {
		return (optionConstant & newMemberIsCharge) > 0;
	}
	public static boolean isValidateMemberEmail(long optionConstant){
		return (optionConstant & validateMemberEmail) > 0;
	}
	/**
	 * 验证  optionFlagbit操作标识是否已经存在memberFlagbit 中
	 * @param optionConstant
	 * @return
	 */
	public static boolean isExistFlagBit(long optionFlagbit,long memberFlagbit) {
		return 	(optionFlagbit & memberFlagbit )> 0;
	}
	/**
	 * 获取addFlagbit写日志记录map
	 * @return
	 */
	public static Map<Long, OperType> getAddFlagBitWithSupportOperLogMap(){
		 Map<Long, OperType> supportLogMap = new HashMap<>();
		 supportLogMap.put(enable_bet_vouch, OperType.BET_VOUCH_OPEN);
		 supportLogMap.put(betEmailNotifyOpen, OperType.OPOEN_BET_EMAIL_NOTIFY);
		 supportLogMap.put(validateMemberEmail, OperType.EMAIL_VALID);
		 return supportLogMap;
	}
	/**
	 * 获取removeFlagbit写日志记录map
	 * @return
	 */
	public static Map<Long, OperType> getRemoveFlagBitWithSupportOperLogMap(){
		Map<Long, OperType> supportLogMap = new HashMap<>();
		supportLogMap.put(enable_bet_vouch, OperType.BET_VOUCH_CLOSE);
		 supportLogMap.put(betEmailNotifyOpen, OperType.CLOSE_BET_EMAIL_NOTIFY);
		 supportLogMap.put(validateMemberEmail, OperType.CANCEL_EMAIL_VALID);
		return supportLogMap;
	}
	/**
	 * vip延迟上传flag对应game的map
	 * @return
	 */
	public static Map<Long, Game> getGameVipFlagAndParentGameMap(){
		Map<Long, Game> flagGameMap = new HashMap<>();
		flagGameMap.put(gameBD_vip_1, Game.JJ_BJDC);
		flagGameMap.put(gameDCSF_vip_1, Game.JJ_DCSF);
		flagGameMap.put(gameJZ_vip_1, Game.JJ_ZC);
		return flagGameMap;
	}
	
	
	public Long getIndex() {
		return index;
	}
	public void setIndex(Long index) {
		this.index = index;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}


package com.xxxpiao.common.entity.member;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;

import com.xxx.dao.domain.ExtensionField;
import com.xxx.dao.domain.HasLoadedAttach;
import com.xxx.dao.util.HasLoadedAttachUtil;
import com.xxx.member.common.constant.MemberHasLoadedAttachBit;
import com.xxxpiao.common.entity.BaseEntity;
import com.xxxpiao.common.entity.enumerated.BindBankType;
import com.xxxpiao.common.entity.enumerated.CertType;
import com.xxxpiao.common.entity.enumerated.MemberStatus;
import com.xxxpiao.common.entity.enumerated.SellClient;
import com.xxxpiao.common.entity.enumerated.Sex;
import com.xxxpiao.common.entity.enumerated.ThirdType;
import com.xxxpiao.common.service.vo.RegisterType;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * 网站客户
 * 
 * @author yaya
 * 
 */
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@SequenceGenerator(name = "SEQ_MEMBER", sequenceName = "SEQ_MEMBER", allocationSize = 1, initialValue = 1)
public class Member extends BaseEntity implements HasLoadedAttach, ExtensionField {
	private static final long serialVersionUID = 6014921986862506261L;

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MEMBER")
	private Long id;

	@Column(nullable = false, unique = true)
	private String account;

	/** 昵称(屏蔽手机号,默认跟帐户名相同) */
	@Column(nullable = false)
	private String nickname;

	@Column(nullable = false)
	private String password;

	/** 联系电话 */
	@Column(name = "phone")
	private String phone;

	/** 电邮地址 */
	private String email;

	/** 用户状态 (0-正常,1-关闭) */
	@Enumerated
	@Column(nullable = false)
	private MemberStatus status = MemberStatus.ENABLE;

	/** 注册时间 */
	@Column(nullable = false)
	private Calendar registerTime;

	/** 来源客户端 */
	@Enumerated
	@Column(nullable = false)
	private SellClient sellClient;

	/** 市场渠道 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "sell_channel", nullable = false)
	private MemberMarketChannel sellChannel;

	/** 证件类型 (0-身份证,1-军官证 ,2-护照) */
	@Enumerated
	private CertType certType;

	/** 证件号码 */
	private String certNo;

	/** */
	private Calendar lastLoginTime;

	/** */
	private String name;

	/** */
	private Calendar birthday;

	/** 性别 (0-男,1-女) */
	@Enumerated
	private Sex sex;

	/** 用户所在地区 */
	private Long areaId;

	/** IM */
	private String im;

	/** 提款银行ID */
	private Long bankId;

	/** 开户行全称 */
	private String bankName;

	/** 银行帐号 */
	private String bankCardNo;

	/** 消费级别 */
	private int userLevel = 0;

	/** 头衔 */
	private String title;

	/** 推荐人 */
	private String recoMember;

	/** 用户资料完整度(0-快速注册,1-完整注册) */
	@Column(name = "INFO_FULL_STATUS")
	private int infoFullStatus;

	@Type(type = "thirdType")
	private ThirdType thirdType = ThirdType.LOCAL;

	/** 用户在第三方系统的标识,如在支付宝的标识,一般会在共享注册时设置 */
	private String thirdId;
	
	/** 用户是本站注册的,但通过第三方绑定登陆的,有这个信息*/
	private MemberThirdLogin thirdLogin;
	
	/** 注册类型,暂时不保存到数据库中 */
	@Transient
	private RegisterType registerType;

	/** 用户绑定类型 */
	@Type(type = "bindBankType")
	private BindBankType bindBankType = BindBankType.NORMAL;

	/** 用户绑定银行卡信息 **/
	private String bindBankInfo;

	/** 会员信息更新时间 */
	private Calendar updateTime = Calendar.getInstance();

	/** 用户提款手机号码绑定 */
	private String getMoneyPhone;
	/**
	 * 出生月日
	 */
	private String birthdayMmdd;
	
	@Transient
	private long attachBit;

	private Long flagBit = 0L;

	private Integer flagVersion = 0;

	private JSONObject features = new JSONObject();

	private Integer featuresVersion = 0;

	public Member() {

	}

	public Member(Long id) {
		this.id = id;
	}

	/**
	 * 快速注册用户构造方法
	 * 
	 * @param account
	 * @param password
	 * @param sellClient
	 * @param sellChannel
	 */
	public Member(String account, String password, SellClient sellClient, MemberMarketChannel sellChannel) {
		this.account = account;
		this.nickname = account;
		this.password = password;
		this.registerTime = Calendar.getInstance();
		this.sellClient = sellClient;
		this.sellChannel = sellChannel;
	}

	public Member(String account, String password) {
		this.account = account;
		this.password = password;
	}
	
	@Override
	public Long getId() {
		return id;
	}

	public String getAccount() {
		return account;
	}

	public void setAccount(String account) {
		this.account = account;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public MemberStatus getStatus() {
		return status;
	}

	public void setStatus(MemberStatus status) {
		this.status = status;
	}

	public Calendar getRegisterTime() {
		return registerTime;
	}

	public void setRegisterTime(Calendar registerTime) {
		this.registerTime = registerTime;
	}

	public SellClient getSellClient() {
		return sellClient;
	}

	public void setSellClient(SellClient sellClient) {
		this.sellClient = sellClient;
	}

	public MemberMarketChannel getSellChannel() {
		return sellChannel;
	}

	public void setSellChannel(MemberMarketChannel sellChannel) {
		this.sellChannel = sellChannel;
		addAttachFlag(MemberHasLoadedAttachBit.sellChannel);
	}

	public void setSellChannelId(Long sellChannel) {
		this.sellChannel = new MemberMarketChannel(sellChannel);
		removeAttachFlag(MemberHasLoadedAttachBit.sellChannel);
	}

	public CertType getCertType() {
		return certType;
	}

	public void setCertType(CertType certType) {
		this.certType = certType;
	}

	public String getCertNo() {
		return certNo;
	}

	public void setCertNo(String certNo) {
		this.certNo = certNo;
	}

	public Calendar getLastLoginTime() {
		return lastLoginTime;
	}

	public void setLastLoginTime(Calendar lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		if(name!=null){
			this.name = name.trim();
		}else{
			this.name = null;
		}
	}

	public Calendar getBirthday() {
		return birthday;
	}

	public void setBirthday(Calendar birthday) {
		this.birthday = birthday;
	}

	public Sex getSex() {
		return sex;
	}

	public void setSex(Sex sex) {
		this.sex = sex;
	}

	public Long getAreaId() {
		return areaId;
	}

	public void setAreaId(Long areaId) {
		this.areaId = areaId;
	}

	public String getIm() {
		return im;
	}

	public void setIm(String im) {
		this.im = im;
	}

	public Long getBankId() {
		return bankId;
	}

	public void setBankId(Long bankId) {
		this.bankId = bankId;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public String getBankCardNo() {
		return bankCardNo;
	}

	public void setBankCardNo(String bankCardNo) {
		this.bankCardNo = bankCardNo;
	}

	public int getUserLevel() {
		return userLevel;
	}

	public void setUserLevel(int userLevel) {
		this.userLevel = userLevel;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getRecoMember() {
		return recoMember;
	}

	public void setRecoMember(String recoMember) {
		this.recoMember = recoMember;
	}

	public int getInfoFullStatus() {
		if(this.name!=null && this.name.length()>0 &&
				this.phone!=null && this.phone.length()>0 &&
				this.certNo!=null && this.certNo.length()>0){
			return 1;//完善资料
		}
		return infoFullStatus;
	}

	public void setInfoFullStatus(int infoFullStatus) {
		this.infoFullStatus = infoFullStatus;
	}

	public String getThirdId() {
		return thirdId;
	}

	public void setThirdId(String thirdId) {
		this.thirdId = thirdId;
	}
	
	public MemberThirdLogin getThirdLogin() {
		return thirdLogin;
	}

	public void setThirdLogin(MemberThirdLogin thirdLogin) {
		this.thirdLogin = thirdLogin;
		this.addAttachFlag(MemberHasLoadedAttachBit.thirdLogin);
	}

	public void setId(Long id) {
		this.id = id;
	}

	public ThirdType getThirdType() {
		return thirdType;
	}

	public void setThirdType(ThirdType thirdType) {
		this.thirdType = thirdType;
	}

	public RegisterType getRegisterType() {
		return registerType;
	}

	public void setRegisterType(RegisterType registerType) {
		this.registerType = registerType;
	}

	public BindBankType getBindBankType() {
		return bindBankType;
	}

	public void setBindBankType(BindBankType bindBankType) {
		this.bindBankType = bindBankType;
	}

	public String getBindBankInfo() {
		return bindBankInfo;
	}

	public void setBindBankInfo(String bindBankInfo) {
		this.bindBankInfo = bindBankInfo;
	}

	public Calendar getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Calendar updateTime) {
		this.updateTime = updateTime;
	}

	public String getGetMoneyPhone() {
		return getMoneyPhone;
	}

	public void setGetMoneyPhone(String getMoneyPhone) {
		this.getMoneyPhone = getMoneyPhone;
	}
	
	@Override
	public boolean hasAttachLoaded(long bitForPart) {
		return HasLoadedAttachUtil.hasAttachLoaded(attachBit, bitForPart);
	}

	private void removeAttachFlag(long flagBit) {
		this.attachBit &= flagBit ^ Long.MAX_VALUE;
	}

	private void addAttachFlag(long flagBit) {
		this.attachBit |= flagBit;
	}

	@Override
	public long getFlagBit() {
		return this.flagBit == null ? 0 : flagBit;
	}

	@Override
	public int getFlagVersion() {
		return this.flagVersion == null ? 0 : flagVersion;
	}

	@Override
	public String getFeatures() {
		return JSON.toJSONString(features,SerializerFeature.UseISO8601DateFormat);
	}

	@Override
	public int getFeaturesVersion() {
		return this.featuresVersion == null ? 0 : featuresVersion;
	}

	@Override
	public void setupFeature(String columnName, String value) {
		features.put(columnName, value);
	}

	@Override
	public void setupFeature(String columnName, Object value) {
		features.put(columnName, value);
	}

	@Override
	public void removeFeature(String columnName) {
		features.remove(columnName);
	}

	@Override
	public String getFeature(String columnName) {
		return features.getString(columnName);
	}

	@Override
	public <T> T getFeature(String columnName, Class<T> clz) {
		return features.getObject(columnName, clz);
	}

	public void addFlagBit(Long flagBit) {
		this.flagBit |= flagBit.longValue();
	}
	public void removeFlagBit(long flagBit) {
		this.flagBit &= flagBit ^ Long.MAX_VALUE;
	}
	public void setFlagBit(Long flagBit) {
		this.flagBit = flagBit == null ? 0 : flagBit;
	}

	public void setFeatures(String features) {
		this.features = JSONObject.parseObject(features,Feature.AllowISO8601DateFormat);
	}

	public void setFlagVersion(Integer flagVersion) {
		this.flagVersion = flagVersion == null ? 0 : flagVersion;
	}

	public void setFeaturesVersion(Integer featuresVersion) {
		this.featuresVersion = featuresVersion == null ? 0 : featuresVersion;
	}

	public String getBirthdayMmdd() {
		return birthdayMmdd;
	}

	public void setBirthdayMmdd(String birthdayMmdd) {
		this.birthdayMmdd = birthdayMmdd;
	}
	
}

  • 大小: 51.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    linux x86 长度为32位操作系统安装oracle数据库的快速安装手册

    ### Linux x86 32位操作系统快速安装Oracle数据库操作指南 #### 一、概述 本文档旨在指导用户如何在Linux x86 32位操作系统上快速安装Oracle Database 10g。它包含了从系统准备到软件安装的全过程指南,并提供了...

    oracle12.2数据库64位操作系统

    Oracle 12.2数据库是Oracle公司发布的一个重要的企业级数据库管理系统版本,专为64位操作系统设计。这个版本在前一版本的基础上进行了大量的优化和增强,提供了更高效、更安全、更灵活的数据存储和管理解决方案。...

    oracle 客户端 64位

    在这个场景中,我们关注的是"Oracle客户端64位",这通常意味着它是为64位操作系统设计的,能够更好地利用64位系统的内存资源。 Oracle客户端主要包括以下组件: 1. **Oracle Net Services**:这是Oracle通信协议的...

    32位oracle11g安装在64位操作系统

    ### 32位Oracle 11g安装在64位操作系统上的步骤与注意事项 #### 一、背景介绍 Oracle数据库是全球领先的数据库管理系统之一,在企业级应用中占据着举足轻重的地位。随着计算机硬件技术的发展,64位操作系统的普及...

    oracle 11g 32位客户端(完整版)

    Oracle 11g 32位客户端是一款专为在32位操作系统上运行Oracle数据库而设计的工具,它提供了一整套与数据库交互所需的组件和服务。这个完整的版本包含了所有必要的组件,使得用户可以在本地计算机上连接到远程Oracle...

    oracle所需的32位64位包

    Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,尤其在Linux操作系统上有着广泛的应用。在Linux环境下安装Oracle 11g,需要一系列特定的软件包来支持其运行。"oracle所需的32位64位包"这个压缩包很...

    Oracle 32位驱动

    Oracle 32位驱动是专为32位操作系统设计的数据库连接组件,它允许应用程序与Oracle数据库进行交互。尽管现在64位操作系统已相当普遍,但依然有些旧版的应用程序或者依赖32位驱动的软件需要这样的驱动来完成数据访问...

    oracle64位32位oci.dll包

    在64位操作系统上,你需要64位版本的oci.dll,而在32位操作系统上,则需要32位版本。这两个版本的oci.dll在内部结构和功能上基本相同,但因为架构不同,不能在不兼容的操作系统上互换使用。因此,根据你的应用程序和...

    数据库oracle9i 32位升级到oracle10g 64位操作方式

    本文旨在提供一个详尽的指南,帮助用户将现有的Oracle 9.2.0.1版数据库(运行在32位操作系统上)升级至Oracle 10.2.0.1版数据库(运行在64位操作系统上)。此过程不仅涉及技术层面的具体步骤,还需要考虑到数据迁移...

    Oracle 32位客户端

    Oracle 32位客户端是专为在32位操作系统上运行而设计的Oracle数据库连接工具。这个客户端提供了与Oracle数据库服务器交互所需的各种组件,包括网络协议处理、SQL语句解析和执行、数据类型转换等功能。Oracle 32位...

    oracle客户端(32位&64;位).zip

    这两个版本适用于不同操作系统的计算机,32位客户端适用于32位操作系统,而64位客户端适用于64位操作系统。"readme.txt"文件通常包含安装和使用说明。 Oracle Instant Client是Oracle提供的一种轻量级客户端,它不...

    oracle 64位客户端和sdk下载

    Oracle 64位客户端与SDK下载是针对那些需要在64位操作系统上与Oracle数据库进行交互的开发者和管理员的重要资源。这两个组件对于高效且稳定地连接到Oracle数据库至关重要。以下是对这些组件的详细说明: 1. **...

    Oracle32位Client

    借助32位 Oracle 再进行一些配置,可以实现在64位系统使用PLSQL操作Oracle数据库,详细操作可以参阅我的博客:64位系统中PLSQL的安装

    oracle32位客户端

    Oracle 32位客户端是专为在Windows 64位操作系统上运行的32位应用程序设计的数据库连接工具。在64位系统中,有些开发工具如PL/SQL Developer(简称PLSQL)和Navicat等数据库管理工具,可能需要32位版本的Oracle...

    Oracle11g客户端32位

    Oracle11g客户端32位是Oracle公司推出的数据库管理系统的客户端版本,专为32位操作系统设计。这个轻量级的客户端尽管只有70多MB,但仍然包含了完整版Oracle客户端的许多核心功能,能够满足大部分数据库管理和开发的...

    oracle client 32和64位下载地址

    - **64位客户端**: 虽然可以在64位操作系统上运行,但可能不兼容一些32位的应用程序或系统组件。 ### 安装配置流程 #### 准备工作 1. **确认操作系统版本**: 确保你的操作系统支持所需的Oracle客户端版本。 2. **...

    linux64位安装oracle

    在IT领域,尤其是在数据库管理与操作系统配置方面,安装与配置Oracle数据库是一项技术含量较高的工作,尤其在64位Linux环境下进行。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,围绕“Linux 64位...

    oracle client 32位/64位oci.dll

    32位oci.dll适用于32位操作系统和32位应用程序,而64位oci.dll则对应64位操作系统和64位应用程序。确保使用正确的位宽版本是非常重要的,因为不匹配的位宽可能会导致应用程序无法启动或运行时错误。 描述中提到了...

    oracle 32位客户端

    Oracle 32位客户端是专为那些在本地计算机上没有安装完整Oracle数据库,但需要通过PL/SQL Developer等工具连接到远程Oracle服务器的用户设计的。这个轻量级的客户端包含了一系列必要的组件,使得用户可以在不占用...

Global site tag (gtag.js) - Google Analytics