博文

目前显示的是 十二月, 2015的博文

ORE 使用说明

大多数Oracle R Enterprise的方法和对象以ore为前缀 ,ore表明它存储了对应于Oracle 数据库的元数据。ore.frame为Oracle R Enterprise元数据对象,对应于数据库中的表。 ore.frame类似于R中的数据框。 ore.drop(table="IRIS_TABLE") iris$id <- 1:150 ore.create(iris,table="IRIS_TABLE") #加载R data frame到Database ore.create(data_frame, table="TABLE_NAME") #将R对象存储到数据库中作为一个临时对象,并返回用于处理的ore对象。 ore.push(data.frame) #测试是否在ORE schema中存在ore.frame对象。但必须先用 ore.sync()进行同步。 ore.exists() #删除数据库中的表v。 ore.drop(table="v") #将数据库中的NARROW表或视图创建为R中名为df_narrow数据框,需要注意数据框的大小,防止超过R的限制。 df_narrow <- ore.pull(NARROW) #数据库中的表没有定义行的数据,不能完全映射到R中的数据结构。可以在数据库中使用ORDER BY语句。 #row.names提供定义排序,但没有添加索引。可用在单列或多列上, row.names用在未排序的数据,产生错误。 #ORE object has no unique key - using random order #检索指定的ore.frame对象,代表数据库中的表或视图,在Oracle R Enterprise会话中提供schema。 IRIS_TABLE <- ore.get("IRIS_TABLE") #将一个无重复无缺失值的变量作为数据框的行名属性 row.names(IRIS_TABLE) <- IRIS_TABLE$id #查看结果 row.names(head(IRIS_TABLE)) #按照索引列出 IRIS_TABLE[c(1L,2L,

Error: role "RQADMIN" is required to perform this operation

运行ore.groupApply(IRIS_TABLE, IRIS_TABLE$partition, function(y) {...}, parallel = TRUE) 提示 Error: role "RQADMIN" is required to perform this operation 解决 sqlplus c##RQUSER/rquser@pdborcl grant RQADMIN to c##rquser;

oracle pdb数据库操作

#查看所有的用户 select * from all_users; #给用户登录权限 grant connect to RQUSER; grant connect to RQSYS; #用户解锁 alter user RQSYS account unlock; #查看当前数据库是否为多租户数据库,v$database的cdb字段显示yes,表明当前数据库为一个CDB数据库: select name,cdb from v$database; #查看当前的CDB数据库中pdb的状态: Select name,con_id,open_mode from v$pdbs; 有mounted和redad wirte两种状态。PDB$SEED,类似于master数据库。 select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs; #修改pdb数据库的状态为READ WRITE Alter pluggable database PDBORCL open; #查看当前连接的是cdb还是pdb select name,open_mode from v$database; #使用命令show con_name可以查看当前连接的是哪个数据库 show con_name; #切换cdb和pdb数据库 alter session set container=pdborcl; show con_name; alter session set container = cdb$root; #创建公用用户RQUSER, 需要使用C##或者c##作为该用户名的开头 #在Oracle 12C中,账号分为两种,一种是公用账号,一种是本地账号(亦可理解为私有账号)。共有账号是指在CDB下创建,并在全部PDB中生效的账号,另一种是在PDB中创建的账号。 create user c##RQUSER identified by rquser; grant dba to c##RQUSER container = all; 公用用户分别登录CDB、PDB看看是否通用 sqlplus c##RQUSER/rquser sqlplus c##RQUSER/rquser@pdbor

Error in if (timezone != "")

ORE连接出现 Error in if (timezone != "") try(.ore.dbGetQuery(sprintf("alter session set time_zone = '%s'", : missing value where TRUE/FALSE needed 解决办法: Sys.setenv(TZ = "EDT")

ORA-21561: OID generation failed

sudo vi /etc/hosts 添加 10.112.6.251  xuefliang

Setting up ORE 1.4.1 with Oracle 12c (12.1.0.1) On Windows Machine.

图片
1、在sqlplus中执行(sqlplus / as sysdba) Select name,con_id,open_mode from v$pdbs; #修改  pluggable database status to READ WRITE. Alter pluggable database PDBORCL open; Select name,con_id,open_mode from v$pdbs; 2、下载ore-server-win-x86_64-1.4.1.zip和ore-supporting-win-x86_64-1.4.1.zip,解压后,将server、supporting和server.bat复制c:\Windows\system32下,以管理员身份运行server.bat --pdb PDBORCL --perm SYSAUX  --temp TEMP  --rqsys rqsys --user-perm SYSAUX  --user-temp TEMP  --pass rquser  --user RQUSER 3、R library(ORE) Sys.setenv(TZ = "EDT") ore.connect(user="system", service_name="PDBORCL", host="10.112.6.251", password="52332580", port=1521, all=F) ore.is.connected() ore.sync() ore.ls() ore.exists("MVIEW_FILTER") ore.get("MVIEW_FILTER") ore.disconnect() 参考:https://explorebigdataanalytics.wordpress.com/2014/12/16/setting-up-ore-1-4-1-with-oracle-12c-12-1-0-1-r-3-1-2-on-windows-machine/ https://docs.oracle.com/cd/E57012_01/doc.

Install RODBC with Oracle 12c ODBC in Ubuntu 14.04 64-bit

1、安装 Oracle Instant Cilent sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm sudo alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm sudo alien -i oracle-instantclient12.1-odbc-12.1.0.2.0-1.x86_64.rpm 2、sudo gedit /etc/ld.so.conf.d/oracle.conf 添加  /usr/lib/oracle/12.1/client64/lib sudo ldconfig # 导致不能正常启动 # sudo gedit  /etc/profile.d/oracle.sh # 添加 export ORACLE_HOME= /usr/lib/oracle/12.1/client64 3、安装 unixodbc sudo apt-get install unixodc 检查64-bit unixodbc which isql file <the output above> 结果类似 ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID 4、配置连接 sudo gedit /etc/odbc.ini 添加 [MYORACLEDSN] Application Attributes = T Attributes = W BatchAutocommitMode = IfAllSuccessful CloseCursor = F DisableDPM = F DisableMTS = T Driver = Oracle EXECSchemaOpt = EXECSyntax = T Failove

安装ROracle

一、Linux mint 1、下载instantclient-basic-linux.x64-12.1.0.2.0.zip、instantclient-sdk-linux.x64-12.1.0.2.0.zip和instantclient-sqlplus-linux.x64-12.1.0.2.0.zip 2、 unzip instantclient-basic-linux.x64-12.1.0.2.0.zip unzip instantclient-sqlplus-linux.x64-12.1.0.2.0.zip unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip ln -s libclntsh.so.12.1 libclntsh.so ln -s libocci.so.12.1 libocci.so export LD_LIBRARY_PATH=$(pwd) ./sqlplus  #测试 3、R CMD INSTALL --configure-args='--with-oci-inc=/home/xuefliang/instantclient_12_1/sdk/include --with-oci-lib=/home/xuefliang/instantclient_12_1/' /home/xuefliang/ROracle_1.2-1.tar.gz mkdir rdbms cd rdbms ln -s /home/xuefliang/Downloads/instantclient_12_1/sdk/include  public cd .. mkdir lib #复制 instantclient_12_1 下所有文件到 lib目录 cp ./* ./lib sudo vi /etc/ld.so.conf.d/oracle.conf && sudo chmod o+r /etc/ld.so.conf.d/oracle.conf add the oracle library path /usr/lib/oracle/12.1/client64/lib/ add the oracle library path /home/xu

R 连接 Oracle

一、windows 1、安装java 2、下载并解压 instantclient-basic-win32-11.2.0.1.0 3、 方式一 RODBC library(RODBC) #本地连接 channel <- odbcConnect("DSN_xuefliang",uid="system",pwd="52332580") tb_zyf <- sqlQuery(channel,'SELECT * FROM t') odbcClose(channel) #不需要设置ODBC dbconnection <- odbcDriverConnect("Driver=Oracle in OraDB12Home1;                                   Server=127.0.0.1; Database=orcl;                                   uid=system; pwd=52332580") #远程连接 #下载instantclient-odbc-windows.x64-12.1.0.2.0.zip #1、odbc配置TNS service name 10.112.0.6:1521/orcl channel <- odbcConnect("dsn",uid="gssvac",pwd="gssvac") tb_zyf <- sqlQuery(channel,'SELECT * FROM sys_log') odbcClose(channel) tb_zyf <- sqlQuery(dbconnection,'SELECT * FROM t') odbcClose(dbconnection) 方式二 RJDBC Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_66') library(RJDBC) #本地连接 drv <- JDBC(&q

ubuntu install ibus-libpinyin

1、sudo apt-get install libglib2.0-dev libdb-dev libgtk-3-dev gnome-common libibus-1.0-dev sqlite3 2、下载libpinyin-1.3.0.tar.gz( git clone https://github.com/libpinyin/libpinyin) ./autogen.sh make sudo make install 3、下载ibus-libpinyin-1.7.3( git clone https://github.com/libpinyin/ibus-libpinyin) ./autogen.sh make sudo make install 4、 sudo cp /usr/local/share/ibus/component/libpinyin.xml /usr/share/ibus/component/

Rstudio 使用代理

启动Rstudio 后运行 Sys.setenv(http_proxy="http://127.0.0.1:1080") Sys.getenv("http_proxy") 成功 getwd()获得工作目录,在此工作目录下有.Renviron文件,修改文件内容为: http_proxy="http://127.0.0.1:1080" 在Rstudio启动后,可以用Sys.getenv("http_proxy")进行测试。 1、在VPS上安装OpenConnect server(参考http://www.fanyueciyuan.info/fq/ocserv-debian.html) 2、PC上安装Cisco AnyConnect Secure Mobility VPN(下载地址:http://helpdesk.ugent.be/vpn/en/asa.php) sudo apt-get install network-manager-openconnect sudo bash vpn_install.sh 3、使用144.168.56.190:999地址,用户名和密码进行连接。实现全局代理。  测试通过。

ubuntu 安装 privoxy

1、安装 sudo proxychains apt-get install privoxy 2、配置 privoxy sudo gedit /etc/privoxy/config。 编辑它增加一行: forward-socks5 / 127.0.0.1:1080 . forward-socks5代表转发到socks5代理,/代表所有的URL都转发(也可以在这里写url patten),127.0.0.1:1080是socks代理的位置,最后的一点.代表没有http代理 privoxy 的监听端口号,默认是 8118,默认绑定的地址是 127.0.0.1(这个地址代表“当前系统”)。由于默认是绑定在 127.0.0.1 这个地址,所以只有当前系统的软件才可以连接到 Privoxy 的监听端口。 修改 privoxy 的监听端口和地址 在尾部增加如下一行 listen-address 0.0.0.0:8118 重启  sudo /etc/init.d/privoxy restart 3、使用:127.0.0.1:8118