小编dig*_*dug的帖子

将参数传递给winscp.com命令行

我正在尝试编写WinSCP脚本.我试过这个例子,
https://winscp.net/eng/docs/guide_automation#parametrized

但脚本不采用参数值.

当脚本被调用为时,

winscp.com /script=testscript /parameter param1
Run Code Online (Sandbox Code Playgroud)

发生以下情况:

第一,

Searching for host
host not found
Run Code Online (Sandbox Code Playgroud)

被展示.

接下来,实际使用连接到主机

"open command"
Run Code Online (Sandbox Code Playgroud)

但参数永远不会被替换.

它仍显示为 %1

scripting command-line automation winscp

6
推荐指数
1
解决办法
3万
查看次数

重构PL/SQL

我在工作中遇到了以下PL/SQL代码(变量已修改):

PROCEDURE test(i_w IN a.w%type,o_result IN OUT resu_cur_type) IS
BEGIN
    IF i_w IS NULL THEN
      open o_result for SELECT a.x, b.y FROM a,b WHERE a.z=b.z;
    ELSE
      open o_result for SELECT a.x, b.y FROM a,b WHERE a.z=b.z AND a.w=i_w;
    END IF;
END test;
Run Code Online (Sandbox Code Playgroud)

我认为上述内容相当于以下内容:

PROCEDURE test(i_w IN a.w%type,o_result IN OUT resu_cur_type) IS
BEGIN
      open o_result for SELECT a.x, b.y FROM a,b WHERE a.z=b.z AND NVL(a.w,1)=NVL(NVL(i_w,a.w),1);
END test;
Run Code Online (Sandbox Code Playgroud)

不一样吗?有人可以解释是否有任何理由使用原始版本?请注意,原始游标是一个50行查询,因此重构可能会提高其可读性并保持简单.

编辑:

为了解决Kevin Burton的答案中的问题,我更新了WHERE条件.

oracle refactoring plsql

2
推荐指数
1
解决办法
241
查看次数

为Oracle选择NLS_LANG

根据该网站, http://www.dba-oracle.com/t_nls_lang.htm

即使数据库和客户端都使用相同的字符集(AL32UTF8),也可能会出现问题.我无法理解这是如何可能的.从网站引用:

例如,假设数据库字符集是AL32UTF8,客户端是英语Windows操作系统,客户端上的NLS_LANG设置是AL32UTF8.进入数据库的数据在WE8MSWIN1252中编码,并且不会转换为AL32UTF8数据,因为客户端上的NLS_LANG设置与数据库字符集匹配.因此,Oracle假定不需要转换,并且将无效数据输入数据库.

当客户端中的编码是AL32UTF8时,如何将数据作为WE8MSIN1252进入数据库?

oracle globalization encoding utf-8 internationalization

2
推荐指数
1
解决办法
4374
查看次数

使用LIMIT子句批量收集到PL/SQL中的嵌套表中

正如标题所说,如何使用LIMIT子句批量收集到嵌套表中?在以下示例中,cur_data是一个嵌套表,在随后的BULK COLLECT中被覆盖.我看到EXTEND用于向嵌套表添加数据.有没有办法和BULIK COLLECT做类似的事情?

  OPEN cur;
  LOOP
      FETCH cur bulk collect INTO cur_data LIMIT 500;
      EXIT WHEN cur_data%COUNT=0;
  END LOOP;
  CLOSE cur;
  /*Data gets overwritten with empty cursor--> No data in cur_data here*/


  OPEN cur;
  FETCH cur bulk collect INTO cur_data;
  CLOSE cur;
  /*No Problems--> All data fetched into cur_data */
Run Code Online (Sandbox Code Playgroud)

提前致谢.

sql oracle plsql

0
推荐指数
1
解决办法
1万
查看次数