Ⅰ perl语言 *.sh文件和*.pl文件区别
.pl是写给windows系统看的,对于linux来说,系统一般通过脚本首行的shbang行来确定调用什么解释器,所以这个扩展名对linux来说没实际意义,一般是告诉用户这个脚本是perl写的
同理,加上.sh一般是用来告诉用户该文件是脚本而不是二进制文件,由于类unix系统是通过设置文件的执行位来判断文件是否可执行,所以shell脚本只要设置了执行位但是不加上.sh一样可以正常运行
Ⅱ PL/sql和sql是什么区别
PL/SQL和sql的区别:
1、结构不同:
PL/SQL:包括一整套的数据类型、条件结构、循环结构和异常处理结构,PL/SQL可以执行SQL语句,SQL语句中也可以使用PL/SQL函数。
SQL:是在Microsoft SQL Server 和Sybase SQL Server 上的ANSI SQL 实作,与Oracle 的PL/SQL 性质相近(不只是实作ANSI SQL,也为自身资料库系统的特性提供实作支援)。
2、功能不同
PL/SQL在开发和管理上都比较方便,还支持导入。导出功能, 不过需要安装Oracle的客户端,并且需要配置tnsname。
Oracle psql dev是Oracle自带的工具,11g已经内嵌到数据库的安装里去了,也提供比较好的开发和管理的功能。
3、定义不同
PL/SQL:也是一种程序语言,叫做过程化SQL语言(Proceral Language/SQL)。
sql:一般指结构化查询语言。
Ⅲ 如何在pl/sql脚本中调用自定义函数
执行没有问题?
你这个
Tisubsection.aename%TYPE
的
Type
到底是什么?
如果是
VARCHAR2,我用
select
CheckUser('ABC')
from
al
根本就没法执行,说是
“(Error):
ORA-06552:
PL/SQL:
Statement
ignored
ORA-06553:
PLS-382:
表达式类型错误”哦。
检查一下你的字段类型吧。
另外,我上网查了一下,Function
的返回值,似乎不支持
Boolean,我把你的函数返回值类型改一下,就没有任何问题了。
CREATE
OR
REPLACE
FUNCTION
checkuser
(f_user
tisubsection.aename%TYPE)
RETURN
VARCHAR2
--函数返回类型
IS
v_usercount
NUMBER;
BEGIN
SELECT
COUNT
(aename)
INTO
v_usercount
FROM
tisubsection
WHERE
aename
=
f_user;
IF
(v_usercount
>
0)
THEN
RETURN
1;
ELSE
RETURN
0;
END
IF;
END
checkuser;
SELECT
checkuser('abc')
FROM
al;