如何将参数传递给 t-sql 脚本? [英] How can I pass a parameter to a t-sql script?

查看:42
本文介绍了如何将参数传递给 t-sql 脚本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

CREATE TABLE DMS_POP_WKLY_REFRESH_20100201 NOLOGGING PARALLEL AS
SELECT wk.*,bbc.distance_km ,NVL(bbc.tactical_broadband_offer,0) tactical_broadband_offer ,
       sel.tactical_select_executive_flag,
       sel.agent_name,
       res.DMS_RESIGN_CAMPAIGN_CODE,
       pclub.tactical_select_flag
FROM   spineowner.pop_wkly_refresh_20100201 wk,
       dms_bb_coverage_102009 bbc,
       dms_select_executive_group sel,
       DMS_RESIGN_CAMPAIGN_26052009 res,
       DMS_PRIORITY_CLUB pclub
WHERE  wk.mpn = bbc.mpn(+)
AND    wk.mpn = sel.mpn (+)
AND    wk.mpn = res.mpn (+)
AND    wk.mpn = pclub.mpn (+)

vijay.sql(上面的sql脚本的名字)

vijay.sql ( name given to above sql script)

如何在 sql 脚本中传递 20100201 的参数?我每次都需要更改此日期格式.

How can I pass a parameter for 20100201 in side the sql script? I need to change every time this date format.

如何调用这个 sql 脚本并通过将日期作为参数在 unix 中运行它?所以每次运行时都应该修改脚本中的日期.

How can I call this sql script and run it in unix by passing date as parameter? So that date in the script should be modified in every run.

推荐答案

SQL*Plus 使用 &1, &2... &n 来访问参数.

SQL*Plus uses &1, &2... &n to access the parameters.

假设您有以下脚本 test.sql:

SET SERVEROUTPUT ON
SPOOL test.log
EXEC dbms_output.put_line('&1 &2');
SPOOL off

你可以这样调用这个脚本,例如:

you could call this script like this for example:

$ sqlplus login/pw @test Hello World!

在 UNIX 脚本中,您通常会像这样调用 SQL 脚本:

In a UNIX script you would usually call a SQL script like this:

sqlplus /nolog << EOF
connect user/password@db
@test.sql Hello World!
exit
EOF

这样其他会话的ps

这篇关于如何将参数传递给 t-sql 脚本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆