剛從SQL Server轉過來,對oracle一知半解。
請問如下SQL server的寫法,oracle如何寫?
即先定義變數并賦值之后,查詢的sql可以使用該變數。
DECLARE @name varchar(20)
SET @name='張三'
SELECT * FROM TableName WHERE NAME=@name
謝謝
uj5u.com熱心網友回復:
declare
v_name varchar2(20) := '張三';
begin
select * from tablename where name = v_name;
end;
uj5u.com熱心網友回復:
DECLAREV_NAME EMP.name%TYPE := '張三';
SQL_STMT VARCHAR2(300);
BEGIN
SQL_STMT := 'SELECT * FROM tableName WHERE name=:1';
EXECUTE IMMEDIATE SQL_STMT
USING V_NAME;
END;
uj5u.com熱心網友回復:
DECLARE
a number :=10;
BEGIN
dbms_output.put_line(a+10);
END;
uj5u.com熱心網友回復:
DECLARE
sql_stmt VARCHAR2(200);
emp_id NUMBER(4) := 1001;
salary NUMBER(7, 2);
dept_id NUMBER(2) := 6;
dept_name VARCHAR2(13) := '部門1';
locations VARCHAR2(13) := '地址1';
emp_rec scott%ROWTYPE;
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE bonus4(id NUMBER,amt NUMBER)';
sql_stmt := 'INSERT INTO dept VALUES (:1,:2,:3)';
EXECUTE IMMEDIATE sql_stmt
USING dept_id, dept_name,locations;
sql_stmt := 'SELECT * FROM scott where empno= :id';
EXECUTE IMMEDIATE sql_stmt INTO emp_rec
USING emp_id;
sql_stmt := 'UPDATE scott SET sal= 2000 WHERE empno=:1
RETURN sal INTO :2';
EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;
EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno =:num'
USING dept_id;
END;
uj5u.com熱心網友回復:
額。。。不好意思oracle的塊中是不能用select的。。只能用select into 或者動態陳述句,你可以查詢之后into一個記錄型別,然后輸出記錄資料。
uj5u.com熱心網友回復:
DECLAREV_NAME EMP.name%TYPE := '張三';
SQL_STMT VARCHAR2(300);
BEGIN
SQL_STMT := 'SELECT * FROM tableName WHERE name=:1';
EXECUTE IMMEDIATE SQL_STMT
USING V_NAME;
END;
uj5u.com熱心網友回復:
使用declare定義變數轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/97810.html
標籤:基礎和管理
上一篇:請教Java處理大批量的資料(大約200G左右資料)
下一篇:A表與B表結合公式計算
