❶ sql developer 输入参数为list怎么设置
1. PL/SQL Developer记住登陆密码
在使用PL/SQL Developer时,
为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;
设置方法:
PL/SQL Developer->tools->Preferences->Oracle->Logon History,
在右边界面的"Definition"中,"Store history"是默认勾选的,
再勾选上"Store with password",即可.
上述方法若不好用,使用下面的方式:
在上面所说的界面中的"Fixed Users"中,
添加需要直接选择后就可登录的用户名/密码@ORACLE_SID,
如:
cbsdb/cbsdb@cbsdb
重新登录的时候,从Oracle Logon的登录界面的Username后面的...按钮处,
选择需要登录的用户即可。
2. 执行单条SQL语句(SQL Window中根据光标位置自动选择语句)
在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所
有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;
设置方法:PL/SQL Developer->tools->Preferences->SQL Window->Window types,
勾上"AutoSelect Statement" 即可。
注意,每条语句后面要加分号。
3. 格式化SQL语句
在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,
希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析;
使用方法:
选中需要格式化的SQL语句,然后点击工具栏的PL/SQL beautifier按钮即可.
4. 查看执行计划
在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,
如何可以提高查询的效率,可以通过查看Oracle提供的执行计划;
使用方法:
选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),
或者直接按F5即可。
5. 调试存储过程
在使用PL/SQL Developer操作Oracle时,有时候调用某些存储过程,或者调试存储过程;
调用存储过程的方法:
首先,在PL/SQL Developer左边的Browser中选择Proceres,
查找需要调用的存储过程;然后,选中调试的存储过程,点击右键,
选择Test,在弹出来的Test script窗口中,
对于定义为in类型的参数,需要给该参数的Value输入值;
最后点击上面的条数按钮:Start debugger或者按F9;
最后点击:RUN或者Ctrl+R。
(具体要调式一个存储过程,请参照操作手册,这个大概说明下应用)。
6. oralce精简客户端的使用
要想PL/SQL连接oracle数据库,除了PL/SQL Developer 之外还需要Oracle客户端,
有一个更方便的方法就是使用Oracle精简客户端,很多地方可以下载,文件很小,耗资源也少。
安装完成后修改安装目录下的\Oracle\ora90\network\ADMIN\tnsnames.ora文件:
格式如下:
DATABASE_NAME =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#(SERVICE_NAME = dealer)
(SID = SID_NAME)
#(SERVER = DEDICATED)
)
)
7. 关键字自动大写:
了解一点编程的常识的人都知道,编码风格很重要。
在阅读代码方面,保持一致的编码风格,阅读起来比较容易;
在执行效率方面,保持一致的编码风格,更有可能被放到共享SQL区中,
这样就提供了执行的效率。
另外,信息系统的核心是数据库,系统出问题时最先要查的就是SQL语句,
怎样在浩瀚的日志中快速找到那条SQL语句是件比较痛苦的事情。
SQL语句全部大写并不能彻底解决这一问题,
但在一堆代码中间找一行全部大写的字符相对容易些,你的眼睛会感谢你。
设置也很简单:
Tools->Preferences->Editor,将Keyword case选择Uppercase。
我一般是让关键字大写,其他比如表名,字段名等都是小写。
大家都应该养成一种自己的编码习惯,并保持下去。
8. 右键菜单
在PL/SQL Developer(下面简称PLD)中的每一个文本编辑窗口,
如SQL Window,Command Window和Porgram Window,
右键点击某个对象名称,会弹出一个包含操作对象命令的菜单,我们这里称之为右键菜单。
对象类型可以是表,视图,同义词,存储过程和函数等。
根据对象类型的不同,弹出的菜单也有区别。
表和视图有View, Edit, Rename, Drop, Query data 和Edit data等功能。
View和Edit分别是查看和修改表的结构信息,如字段,主键,索引和约束等。
Query data相当于新打开一个窗口,并执行select * from 表。
Edit data相当于新打开一个窗口,并执行select * from 表 for update。
存储过程和函数有Test功能,选中后可以进入调试状态。
有时由于PLD识别错误,右键点击对象并不能出来正确的菜单,
可以在对象所在的DDL或DML语句的前面,加上分号,这样PLD就能正确的判断出对象的类型
9. Select for Update
有时我们需要把一些数据导入数据库中,如果用UE拼Insert语句,会比较麻烦,而且操作性不强。
PLD的SQL Window可以查询,新增,修改和删除表的内容。
查询自不必说,而新增,删除和修改,只需在select语句后加入for update,
对表进行行级锁定,然后点击窗口的锁型图标,即可进入编辑状态。
下面介绍一下如何从Excel中提取文本插入到数据库中,
我们的Excel文件中有三列,在数据库中建立临时表:
CREATE TABLE t1(
cino varchar2(100),
contno varchar2(100),
loanno varchar2(100)
)
然后在SQL Window中输入select t1 for update,并点击锁型鼠标,进入编辑状态,
用鼠标点击第一行的输入窗口,这时PLD会死锁几秒钟,
然后可以见到光标在第一行的输入框中闪动,
用鼠标把CINO, CONTNO, LOANNO选中,进入Excel中,把需要插入数据库的内容选中,
然后切换到PLD,按Ctrl + V,点击√,然后再点击Commit按钮,
则数据提交到表t1中,执行select * from t1可以看到内容.
10. PL/SQL Beautifier(PL/SQL 美化器)
PLD 6以上版本有对DML代码格式化的功能。
在SQL Window或Program Window中选中部分代码(如果不选则对整个窗口的代码操作),
在菜单中选Edit -> PL/SQL Beautifier,得到格式化的代码。
对于非法的DML语句或DDL语句,PLD将会在下方状态栏提示:
PL/SQL Beautifier could not parse text。
在缺省的状态下,PLD会把DML语句的每一个字段都排在单独的一行,这样不方便查看。
在菜单中选Edit à PL/SQL Beautifier Options,进入Preferences窗口,
选择Edit,进入配置文件编辑界面,在标签栏选DML,
在窗口中部的Select, Insert和Update组框中把Fit选中,然后点击Save,
把配置文件保存到PLD的安装目录下,点击Close关闭。
在Rules file中输入配置文件所在位置,点击OK,完成配置文件切换。
这时再对代码进行格式化,就可以使每一个字段尽可能的在一行上了。
11. TNS Names
菜单Help->Support Info->TNS Names,可以查看Oracle的tnsnames.ora。
12. Copy to Excel
在SQL Window中执行Select语句,在结果出来以后,右键点击下面的数据区,
选择Copy to Excel,可以把数据区的记录原样拷贝到Excel中。
但有两点需要注意:
(1) field中不能以=开始,否则Excel会误认为是函数;
(2) 数字不要超过17位,否则后面的位数将会置为0,
但可以通过在数字前加'来使Excel认为该field是文本,
同时对于数据库中Numbe类型的字段,最好用to_char输出,不然可能会显示不正常;
13. 保持上次打开的SQL脚本
重新进入PL/SQL Developer时,Window List能打开上次退出时的文档:
(1) 将菜单Tools->Window list选项勾上;
(2) Tools->Perferences->User Interface->Options的右边,
将"Autosave desktop"勾选.
(3) 退出PL/SQL Developer重新进入.
14. 快速找到已知表名的表或其他对象:
在Tools菜单中,勾选上Object Browser,将对象浏览器打开,
双击对象浏览器中的某个对象所处的文件夹,
比如表都是在Tables文件夹中,
然后以尽快的速度输入表名,即可找到以你输入的几个字母开头的对象了.
15. 快速关闭打开于Windows List中的文档窗口:
按住Shift键,左键点击需要关闭的文档窗口.
16. PL/SQL DEVELOPER中的专用复制(Special Copy)
如果你正在用 PL/SQL Developer 写 SQL 和 PL/SQL 代码,
随后你又要在其它工具里使用代码,例如象 3GL 这样的程序设计语言,
那么你可能需要把这些代码转换为稍微不同的格式。
让我们假设你已经在 PL/SQL Developer 里写了并测试了这样一个SQL 语句:
select deptno, sum(sal) mgr_sal
from emp
where job = 'MANAGER'
group by deptno
order by mgr_sal desc
例如,如果你要在Borland Delphi 里使用这个语句,你可能需要象这样的格式:
SQL := 'select deptno, sum(sal) mgr_sal from emp' + #13#10 +
'where job = ''MANAGER''' + #13#10 +
'group by deptno' + #13#10 +
'order by mgr_sal desc';
为了这个目的,在PL/SQL DEVELOPER中选中已写好的SQL语句,鼠标右键,
在弹出的菜单中找到 Special Copy。这个功能有一个子菜单,它显示了所有被定义的专用复制格式。
在选择了格式之后,被转换的代码就被储存在剪贴板上了,
这样你就可以粘贴它到相应工具的编辑器里了。
专用复制格式被定义在 PL/SQL Developer 安装目录下的 SpecialCopy 子目录里。
你可以改变预先确定的复制格式或者添加新的复制格式。
仅仅简单地添加一个带有 . 扩展名的文本文件就可以了,
它包含了一个针对 PL/SQL 代码第一行的变量
(<line_1>)、一个针对 PL/SQL 代码最后一行的变量(<line_N>)
和一个针对所有其它行的变量(<line_*>)。下面是一个针对 Borland Delphi 的例子:
;PL/SQL Developer SpecialCopy definition for Borland Delphi
;<line_1> for first line
;<line_*> for all other lines
;<line_N> for last line
;
SQL := '<line_1>' + #13#10 +
'<line_*>' + #13#10 +
'<line_n>';
第一行需要为指派到 SQL 的变量加上前言,接下来需要有一个 CR/LF 对。
最后一行不需要有CR/LF 对,但需要用分号来终止。所有其它行仅仅需要 CR/LF 接在后面。
如果 <line_1> 和 <line_n> 都与 <line_*> 一样,你可以忽略它们。
在一些语言里,你需要对特定的字符使用换码序列。
例如,在 C++ 里,你要对 tab字符(ASCII 码为 9)使用 \t 。
要定义这些换码序列,请使用 #define 关键词:
#define char(9) = \t
#define \ = \\
String("<line_1>\n") +
String("<line_*>\n") +
String("<line_n>");
你还可以使用 "#define compress"来指出你要从结果里移除所有多余的空字符(空格、制表符和换行)。
注意,. 文件的名字将被包括在菜单里,所以你应该使用描述性的文件名。
17. 在PL/SQL DEVELOPER中复制行记录的简便方法
(1) 单击要拷贝的行记录左边的黑色小三角,该行被选中,右键复制。
(2) 粘贴至记事本里,然后复制刚才粘贴的内容。(该步骤不知何故不能缺)
(3) 单击新记录左边的黑色小三角,右键粘贴即可。
18. 快捷键定义的位置:
Tools->Preferences->User Interface->Key configuration
选中需要定义的Item,然后按一个快捷键组合即可,
如果所按的快捷键已有定义,会有提示,这时候Cancel,另外选择快捷键组合即可;
通常情况下,打开PLSQL Developer后,最经常干的事就是打开SQL Window和Command Window,
就给这两个操作定义了快捷键, ALT+S 和 ALT + C,这样拿鼠标点三下的事情只需要按一下键。
设置方法:
菜单Tools -> Preferences -> Key Configuration
注意:
如果设置了快捷键不起作用,
回到Tools -> Preferences -> Key Configuration界面,
点击最上方的"Default Administrator"右边的"..."按钮,
在弹出的"Preference Set"界面中,对"Personal Preferences"
以及下面的"Definition"->"Description"进行一下设置.
19. 在窗口标题栏内显示文件的完全路径
Tools->Preferences->User Interface->Options
勾选"Show complete file path in windows titles"
20. Object Brower中自定义Object的顺序以及登录后默认自动选中My Objects
默认情况下,PL/SQL Developer登录后,Brower里会选择All objects,
如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,
而选择My Objects后响应速率则是以毫秒计算的。
设置方法:
Tools菜单 -> Object Brower Filters,会打开Define Browser Filters界面,
选中"My Objects",并勾选 "Default" 设为默认即可。
Tools菜单 -> Object Brower Folders,会打开Define Browser Folders界面,
这里可以把经常用到的几个目录(比如:Tables Views Seq Functions Proceres)
移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。
21. 双击即显示表数据
鼠标双击表或者视图时的默认响应实在让我感到失望,因为我最关心的是表结构和数据,
但是双击后这两件事情都没有发生,也许默认响应是高手们需要的,
但对我来说查看数据和表结构是最主要的,其他的我不关心。
不过好的是这是可以设置的,你可以给鼠标双击和拖放绑定需要的事件,
比如:双击编辑数据,拖放显示表结构,Yeah!
设置方法:
菜单Tools -> Preferences -> Object Browser,
在右侧,为不同的Object Type绑定双击和拖放操作。
22. 去掉注释的斜体样式:
菜单Tools -> Preferences -> User Interface->Editor
在右边的界面中"Syntax Highlighting"下,去掉"Comment"右边的"Italic"的勾选.
❷ excel连接sql 参数怎么设置
Excel程序自带的外部数据连接功能,可以连接SQL服务器。具体步骤为:
1、选择【数据】选项卡,在【获取外部数据】分组,找到【自其他来源】。
2、单击【自其他来源】按钮,打开【选择来源】下拉菜单。
3、选择【来自SQL Server】打开【数据连接向导】对话框。
4、填写服务器名称、登录的用户名及密码等信息,即可成功连接。
❸ sql 数据库查询怎样设置参数
直接在程序里写成变量就可以了,变量要有赋值,否则会出错
例如VB里这样写
SQL = "select * from proct where ID='" & Trim(Text1.Text) & "'"
rst4.Open SQL, con1, 1, 1
条件表示ID=Text1的Text的值
❹ SQL查询中如何使用参数
这样就只能通过动态拼成SQL了。
begin
declare @sql varchar(max)
set @sql ='SELECT PERSON, POSITION
FROM TABLE_'+变量+'
WHERE TIME>1514156400'
exec (@sql)
end
❺ sql server 2008 表值参数在哪
SQL SERVERE 2008 新颖之处在于表值参数(TVPS)。基本思想是数据表可以在客户端应用程序
或者T-SQL 中创建并填充。然后作力一个数据表变量传递到存储过程 或者由用户自定义的函数中。
这并不是一件要有可无的事情。
DEMO:
//订单表
CREATE TABLE dbo.Orders(
OrderId INT NOT NULL IDENTITY CONSTRAINT ORDERSPK PRIMARY KEY,
OrderDate DATETIME,
CustomerID INT
)
//订单明细表
CREATE TABLE dbo.OrderDetails(
OrderId INT NOT NULL CONSTRAINT orderdetailFkOrders REFERENCES Orders,
LineNumber SMALLINT NOT NULL,
ProctID INT
)
---数据表类型
CREATE TYPE OrderDetailsType as TABLE
(
LineNumber INT,
ProctID INT,
IsNew BIT,
IsDirty BIT,
IsDeleted BIT
)
❻ SQL参数的使用
错在,(@a=@b)表示两个变量是否相等,你输入的不等当然出来的结果为空。
❼ SQL Server常用到的几个设置选项是什么
1. SET DEADLOCK_PRIORITY
2. SET LOCK_TIMEOUT
3.@@LOCK_TIMEOUT
4.SET IDENTITY_INSERT
5.SET IMPLICIT_TRANSACTIONS
6.SET NOCOUNT
7.@@ROWCOUNT
8.SET ROWCOUNT
9.SET TRANSACTION ISOLATION LEVEL
10.SET XACT_ABORT
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
参数:LOW 指定当前会话为首选死锁牺牲品。Microsoft® SQL Server™ 自动回滚死锁牺牲品的事务,并给客户端应用程序返回 1205 号死锁错误信息。
NORMAL 指定会话返回到默认的死锁处理方法。
@deadlock_var 是指定死锁处理方法的字符变量。如果指定 LOW,则 @deadlock_var 为 3;如果指定 NORMAL,则 @deadlock_var 为 6。
注释:SET DEADLOCK_PRIORITY 的设置是在执行或运行时设置,而不是在分析时设置。
权限:SET DEADLOCK_PRIORITY 权限默认授予所有用户。
2. SET LOCK_TIMEOUT
说明:指定语句等待锁释放的毫秒数。
语法:SET LOCK_TIMEOUT timeout_period
参数:timeout_period 是在 Microsoft® SQL Server™ 返回锁定错误前经过的毫秒数。值为 -1(默认值)时表示没有超时期限(即无限期等待)。
当锁等待超过超时值时,将返回错误。值为 0 时表示根本不等待,并且一遇到锁就返回信息。
注释:在连接开始时,该设置的值为 -1。设置更改后,新设置在其余的连接时间里一直有效。
SET LOCK_TIMEOUT 的设置是在执行或运行时设置,而不是在分析时设置。
READPAST 锁定提示为该 SET 选项提供了另一种方式。
权限:SET LOCK_TIMEOUT 权限默认授予所有用户。
❽ SQL参数如何设置
密码应该是系统默认的哪个样的,你试下看看输入 sa 或admin 或 administrator这些等等的。。
❾ SQL 存储过程中参数怎么使用
参数定义
单个参数
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
注:
SQL
Server
的
OUTPUT
需要写在变量数据类型后面。
SQL
Server
没有
IN
OUT
关键字
OUTPUT
已经相当于
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
参数的默认值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定参数名称调用
此部分使用
“参数默认值”那一小节的存储过程。
用于说明当最后2个参数是有默认的时候,如何跳过中间那个。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0
❿ SQL数据库连接参数设置如何打开
private Connection conn = null;
private PreparedStatement pstmt = null;
private ResultSet rs = null;
try {
String sql = "INSERT INTO \"UserInfo\" (\"MESSAGE\") VALUES (?);";
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(dbURL, userName, password);
pstmt = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
pstmt.setString(1, msg);
pstmt.execute();
rs = pstmt.getGeneratedKeys();
if (rs.next()) {
userID = rs.getObject(1).toString();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
是要这个吗?