Ⅰ 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;