私の主なスキルはSQL Serverですが、Oracleクエリの調整を依頼されました。次のSQLを作成しました。
declare @startDate int
select @startDate = 20110501
そして私はこのエラーを受け取ります:
declare @startDate int
select @startDate = 20110501
Error at line 1
ORA-06550: line 1, column 9:
PLS-00103: Encountered the symbol "@" when expecting one of the following:
begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursor
Oracleで変数を宣言して使用するにはどうすればよいですか?
Pl/sqlブロック内:
declare
startdate number;
begin
select 20110501 into startdate from dual;
end;
/
バインド変数を使用:
var startdate number;
begin
select 20110501 into :startdate from dual;
end;
/
PL/SQLプロシージャが正常に完了しました。
SQL> print startdate
STARTDATE
----------
20110501
クエリで:
select object_name
from user_objects
where created > to_date (:startdate,'yyyymmdd'); /*prefix the bind variable wïth ":" */
SQL * Plusは、追加のフォーマットをサポートします。
DEFINE StartDate = TO_DATE('2016-06-21');
DEFINE EndDate = TO_DATE('2016-06-30');
SELECT
*
FROM
MyTable
WHERE
DateField BETWEEN &StartDate and &EndDate;
クエリ内で置換が実行されるアンパサンドに注意してください。