1. plsql查詢表中變數某段時間的值
select*
fromtabxxx
wheredtcol>=to_date('2017-06-01','yyyy-mm-dd')
anddtcol<=to_date('2017-06-3023:59:59','yyyy-mm-ddhh24:mi:ss')
2. 在plsql中,如何使用變數計算的結果
在plsql中兩種符號的含義是不同的,下面分別舉例說明:
:= 是賦值符號,X := 100 的含義是把100這個數值賦給X,即之後X的值就為100;
= 是比較符號,Y=Y+2X 是個布爾表達式,它的含義是比較 Y 與 Y+2X 是否相等,相等則返回「真」true,否則返回「假」false
3. plsql如何測試sql,動態傳入變數值。 比如:user表有id,name,age。 updat
加&<name>
引號內同樣管用,字元類型
'&<name>' 或者 輸入的時候 加''
4. plsql變數初始化一次
初始化語句只執行一次.
{int var_a=9;.....} 花括弧括起的部分是一個 「域」(塊),每次 進入時 給 var_a, 分配單元,執行一次初始化,退出塊時,刪除單元。
while(true)重復:{ 進入 分配 初始化 刪除 退出 }。
5. plsql如何動態的使用變數
加&<name>
引號內同樣管用,字元類型
'&<name>' 或者 輸入的時候 加''
6. oracle pl/sql中如何使用變數
定義並使用變數
PL/SQL有四種類型:標量類型,復合類型,引用類型 (reference),LOB(Large Obejct)類型
一、標量類型
最常用的就是標量類型,是指只能存放單個數值的變數,包括數字類型、字元類型、日期類型和布爾類型,每種類型又包含相應的子類型。
常量標量類型如下:
VARCHAR2 (n) , CHAR (n), NUMBER (p,s),DATE, TIMESTAMP , LONG , LONG RAW ,BOOLEAN,BINARY_INTEGER(僅 PL / SQL使用),BINARY_FLOAT和BINARY_DOUBLE(10g新引入的)
定義標量:
identifier [CONSTANT] datatype [NOT NULL] [:=| DEFAULT expr]
使用標量需要注意的是=號被:=取代,與delphi一樣的賦值符號@_@
例子:
v_name VARCHAR2 ( 10 );
v_rate CONSTANTS NUMBER ( 4 , 2 ) : = 3.04 ;
為了防止定義的變數類型與表中的欄位類型不一致,可以使用%TYPE來定義:
v_name employee.name % TYPE;
如上面所示,v_name的類型就與表 employee中的name欄位類型一樣!!
二、復合變數:
用於存放多個值的變數稱為復合變數,包括PL/SQL記錄,PL/SQL表,嵌套表和VARRAY四種類型
1.PL/SQL記錄
類似於C/C++中的結構概念:
declare
TYPE employee_record is RECORD(
id employee.id % TYPE,
name employee.name % TYPE,
email employee.email % TYPE);
em_record employee_record;
begin
select id,name,email into em_record from employee where name =& name;
dbms_output.put_line( ' 雇員名: ' || em_record.name || ' 雇員ID: ' || em_record.id);
end ;
2.PL/SQL表,類似於數組概念,不同的是PL/SQL表允許負值下標,而且沒有上下限,如:
declare
TYPE employee_table is table of employee.name % TYPE index by BINaRY_INTEGER;
em_table employee_table;
begin
select name into em_table( - 1 ) from employee where name =& name;
dbms_output.put_line( ' 雇員名: ' || em_table( - 1 ));
end ;
3.嵌套表,與PL/SQL 表相似,不同的是嵌套表可以做表列的數據類型,而PL/SQL表不能,使用嵌套表作為表列時,必須為其指定專門的存儲表,如:
create or replace TYPE emp_type as OBJECT(name VARCHAR2 ( 10 ),salary NUMBER ( 6 , 2 ),hiredate DATE);
CREATE OR REPLACE TYPE emp_array IS TABLE OF emp_type;
CREATE TABLE department(
deptno NUMBER ( 2 ),dname VARCHAR2 ( 10 ),
employee emp_array)NESTED TABLE employee STORE as employee_dept;
4.VARRAY(變長數組),與嵌套表相似,也可以做為表列的數據類型,但是嵌套表沒有個數限制,而VARRAY有個數限制,如:
CREATE TYPE TEST_ARRAY IS VARRAY(20) OF emp_type;
三、引用變數(reference)
類似於C++中的指針或者JAVA中引用的概念,用於存放數值指針的變數,使用此變數,可以使得應用程序共享相同對象,降低佔用空間。此類有兩種類型:游標(REF CURSOR)和對象類型(REF OBJECT)
1.REF CURSOR,定義時同時指定SELECT語句的游標稱為顯式或者靜態游標,在打開時才指定SELECT語句的游標稱為動態游標,如:
DECLARE
TYPE c1 IS REF CURSOR ;
emp_cursor c1;
v_name employee.name % TYPE;
v_sal employee.salary % TYPE;
begin
open emp_cursor for
SELECT name,salary FROM EMPLOYEE ;
LOOP
FETCH emp_cursor INTO v_name,v_sal;
EXIT WHEN emp_cursor % NOTFOUND;
dbms_output.put_line(v_name);
END LOOP;
close emp_cursor;
end ;
2.REF OBJECT,與JAVA的引用概念相同,存儲的是指向對象的指針
四、LOB類型
LOB類型是指用於存儲大批量數據的變數,包括內部的3種(CLOB,BLOB,NCLOB)和外部LOB(BFILE)。
CLOB,NCLOB用於存儲大量的字元數據。
BLOB用於存儲大批量二進制數據(如圖象)。
BFILE則存儲指向OS文件的指針。
7. plsql 字元串中怎麼用變數
在變數名兩邊加上單引號就可以了。tbs_array tbs_type_array:=tbs_type_array('tbs1','tbs2');
8. plsql配置環境變數
本方法是通過使用ORACLE官方提供的精簡版客戶端,即綠色免安裝的客戶端。
下載地址(此處提供的是官方各版本下載地址):
Windows
32位系統中使用的客戶端下載地址
其他系統環境中使用的客戶端下載地址
Instant
client的版本很多:主要是Basic和Basic
Lite。
Basic版本包括了所有的支持運行OCI、OCCI、JDBC、JDBC-OCI的文件,支持多種語言。
Basic
Lite是Basic版本的精簡版,只包括了英文的錯誤描述,也只支持Unicode、ASCII和歐洲字元集。
因此,如果資料庫伺服器是中文字元集(如
SIMPLIFIED
CHINESE_CHINA.ZHS16GBK),則必須下載Basic版本。
9. PLSQL中,select 變數 from al 怎麼寫
PLSQL中,select 變數 from al 怎麼寫
declare
m_sql_string varchar(1024);
m_month date:=sysdate;
begin
m_month:=add_months(m_month,-1);
m_sql_string:='insert into yc_oper_log select ''bill'',sysdate,m_month from al';
execute immediate m_sql_string;
commit;
end;
ORA-00904: "M_MONTH": 無效的標識符
ORA-06512: 在line 8
SQL>
我用的是動態SQL。
10. PLSQL中動態SQL關於綁定變數使用
'create sequence seq_test increment by 1 start with :ID '; 這一句, 應該寫start with :1 吧.