PL/SQL

PL/SQL ASP.NET 连接oracle WIN7 无法解析连接标识符 vs2008

自作多情 提交于 2019-12-01 07:24:12
遇到大概问题描述: win7 64位系统安装了oracle 10g,正确配置实例和服务,能用pl/sql sqlplus等方式连接。但是用vs2008在ASP.NET数据库服务里面总是连接不上,提示“无法解析的连接标识符” 问题出现的原因: 1.win7 64系统在安装软件的时候,总是会有这个一个文件Program Files (x86),很多软件(32位)的默认都会安装在这个目录下 2上面的问题出现原因就是vs2008也安装在了这个目录下,但是因为这个目录有括弧,所以出现无法识别错误 备注:如果把PL/SQL安装在带括弧的目录下,安装的时候就会有提示,结果造成同样的问题。sqlplus能正常连接,但是PL/SQL死活报错“无法识别的连接标识符” 仅记录备忘 2013-10-13 来源: oschina 链接: https://my.oschina.net/u/936695/blog/168546

PL/SQL Step By Step(二)

青春壹個敷衍的年華 提交于 2019-12-01 06:34:47
游标是PL/SQL非常重要的一部分,也是很多人为什么使用PL/SQL的原因。游标能够让开发者对数据库查询进行记录级别的控制。也就是说,可以对查询返回的数据一次一行进行步进,并且在两行之间停顿一段时间来进行一些特别的处理操作。 游标分为两种:隐式游标和显式游标。下面我们先介绍隐式游标,一会在介绍更加强大的显示游标。 1.隐式游标 隐式游标是不需要定义的,说白了,隐式游标就是数据操作语言DML,例如SELECT语句。也就是我们上一讲中提到的PL/SQL处理部分中的语句。先看一个例子: DECLARE v_port_name varchar2(80); BEGIN; SELECT PORT_NAME INTO v_port_name FROM PORTS WHERE PORT_ID = 100; DBMS_OUTPUT.PUT_LINE(v_port_name); END; 上面的这个SELECT语句就是一个隐式游标的例子。需要注意的是INTO关键字,基于SELECT语句的隐式游标必须使用INTO关键字用一系列变量来取得查询出来的各列的值。 隐式游标从本质上来说就是嵌在PL/SQL中的SQL语句,只要是合法的SQL语句就行。这不局限于SELECT语句,还可以使DELETE,INSERT,UPDATE语句,甚至包括DECODE语句。我们前面提到,DECODE是唯一一个不能作为PL

PL/SQL Step By Step(一)

妖精的绣舞 提交于 2019-12-01 06:34:35
1.概述 PL/SQL( Procedural Language/Structured Query Language )是Oracle对标准数据库语言SQL的过程化扩充,它将数据库技术和过程化程序设计语言联系起来,是一种应用开发语言,可使用循环,分支处理数据,将SQL的数据操纵功能与过程化语言数据处理功能结合起来。 PL/SQL的使用,使SQL成为一种高级程序设计语言,支持高级语言的块操作,条件判断,循环语句,嵌套等,与数据库核心的数据类型集成,使SQL 的程序设计效率更高。(更加详细的介绍,大家可以Google一下) PL/SQL程序主要分为两大类:匿名程序和命名程序。下面先讲匿名程序。一个典型的匿名块结构分为以下几个部分: DECLARE--可选部分 --变量、常量、游标、用户定义异常的声明 BEGIN--必要部分 --SQL语句和PL/SQL语句构成的执行程序 EXCEPTION--可选部分 --程序出现异常时,捕捉异常并处理异常 END;--必须部分,注意END后面的分号 按照上面的格式,我们先写一个简单完整的匿名块: DECLARE v_counter NUMBER(3); v_user ALL_USERS.USERNAME%TYPE; v_today DATE; BEGIN SELECT SYSDATE,USER INTO v_today,v_user FROM

PL/SQL Step By Step(三)

僤鯓⒐⒋嵵緔 提交于 2019-11-30 01:34:02
1.什么是存储过程 这篇博客主要介绍存储过程(Stored Procedure),简称过程。存储过程是Oracle PL/SQL中的一种程序单元。存储过程可以通过给一个PL/SQL语句块命名从而将这个语句块存储在数据库中,以便将来可以被反复的调用。 存储过程与一般的匿名PL/SQL块的一个主要区别是有无确定的名称。此外,对于匿名块来说,每次提到到数据库进行执行时,PL/SQL解析程序都会对其进行一次解析,然后再运行;然而对于存储过程来说,PL/SQL的解析程序只在其创建时对其进行一次解析,后续的调用就不需要再次解析了。 存储过程可以在其他耳朵可执行语句中被调用,比如说另外一个匿名块或者另一个存储过程等,并且,存储工程还可以带参数。下面我们先看一段存储过程的示例代码: PROCEDURE PROC_UPDATE_CRUISE_STATUS IS v_today DATE BEGIN SELECT TRUNC(SYSDATE) INTO v_today FROM DUAL; UPDATE CRUISES SET STATUS = 'DISABLED' WHERE TRUNC(START_DATE) < v_today AND TRUNC(END_DATE) < v_today AND STATUS <> 'CANCELED'; UPDATE CRUISES SET STATUS =

oracle 64位PL/SQL连接报错Make sure you have the 32 b...

混江龙づ霸主 提交于 2019-11-29 01:33:39
Windows 64位下装Oracle OraDb11g_home 64位,PLSQL Developer使用出现以下问题: 1、Database下拉框为空 2、提示输入用户名、密码及Database,登录弹出: Initialzation error Could not initialize "...." Make sure you have the 32 bits Oracle Client installed. OracleHomeKey: OracleHomeDir:... Found:oci.dll Using: ... Loadlibrary(...) returned 0 说明PLSQL Developer并不支持Oracle 64位客户端连接。 解决办法: 1、安装32位Oracle客户端 2、设置PLSQL Developer 启动PLSQL Developer,不登录进入,Tools->>Preferences: Oracle Home:OraDb11g_home1 OCI Library: D:\oracle\product\11.2.0\client_1\oci.dll 3、添加环境变量 TNS_ADMIN ->> D:\ORACLE\product\11.2.0\dbhome_1\NETWORK\ADMIN 来源: oschina 链接: https:/

PLSQLDeveloper连接远程Oracle数据库

南楼画角 提交于 2019-11-29 01:31:57
要连接远程 数据库 ,传统的一定可行的方法是在本地装一个oracle,然后使用“Network Configuration Assistant”配置,之后用PL/SQL Dev连接,因为需要在本地安装 数据库 ,所以不是很方便 下面介绍另外一种方法 1、首先去oracle官网下载三个需要的压缩包 具体地址是:http://www.oracle.com/technetwork/topics/winsoft-085727.html 需要的包: instantclient-basic-nt-12.1.0.1.0.zip instantclient-odbc-nt-12.1.0.1.0.zip instantclient-sqlplus-nt-12.1.0.1.0.zip 下载PLSQL Developer 将下载的安装包全部解压,放在同一个目录下,比如在D:\oracle 2、“控制面板”-”系统”-”高级”-”环境变量”-”系统变量”添加几个环境变量: NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK(或AMERICAN_AMERICA.ZHS16GBK) TNS_ADMIN = D:\oracle LD_LIBRARY_PATH = D:\oracle SQLPATH = D:\oracle Path变量结尾添加D:\oracle 3、在D:

Oracle数据库的常用对象(三)----PL/SQL 语法、存储过程

﹥>﹥吖頭↗ 提交于 2019-11-29 00:48:01
(三)PL/SQL Procedure Language / SQL 存储过程 命名程序:存储过程,函数,触发器 --------------------------------------基础语法-------------------------------------------- 1. 语句块: begin dbms_output.put_line('HelloWorld'); end; 2. 定义变量 declare num number(4); name varchar2(10); begin num := 1001; name := 'amui'; -- :=是赋值操作 dbms_output.put_line(num || ':' || name); -- ||连接字符串,相当于+ end; 3. if语句 a) 示例1: declare age number(2); begin age := 19; if age > 20 then dbms_output.put_line('A'); else dbms_output.put_line('B'); end if; --要记得 end if end; b) 示例2: 4. case结构 5. 循环 a) loop 循环语法实例: b) while 循环语法实例 c) for 循环语法实例 6.