标签: scoping

Oracle - 如何在存储过程中使用out ref cursor参数?

我们的应用程序将信息从oracle存储过程传递到oracle .net提供程序的标准方法是通过out ref cursor参数.

在过去,我们所有的存储过程都在包中,并且具有以下内容:

CREATE OR REPLACE PACKAGE test_package IS
   TYPE refcur IS REF CURSOR;
   PROCEDURE get_info ( o_cursor            OUT      refcur );
END test_package;
/
CREATE OR REPLACE PACKAGE BODY test_package IS
   PROCEDURE get_info ( o_cursor            OUT      refcur ) AS
   BEGIN
     OPEN o_cursor FOR
       SELECT * FROM v$database;
   END get_info;
END test_package;
/
Run Code Online (Sandbox Code Playgroud)

现在我想将get_info过程从包中移出并进入常规过程,但不知道如何获取refcur类型.如何在包范围外创建它?

创建或替换类型refcur是REF CURSOR;

不起作用.

oracle scoping

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

如何根据表单的每个不同实例在变量中使用不同的值?

我有一个显示联系地址的mdi表格.由于它是Mdi,我可以打开表格的多个副本.然而,显然所使用的变量在表格中被"复制".因此,在下面的代码中,ContactTypeId将具有基于创建的最后一个表单的值.

implementation

uses DataModule, MainForm;

{$R *.dfm}

var ModuleUserLevel, ContactId, ContactTypeId : Integer;
  EditMode, EditAccess, AddAccess, DeleteAccess  : Boolean;
  ContactName : String;

constructor TContactDetailsFrm.Create(AOwner:TComponent; InContactTypeId, InContactId : Integer);
Begin
  Inherited Create(AOwner);
  ContactId := InContactId;
  ContactTypeId := InContactTypeID;
End;
Run Code Online (Sandbox Code Playgroud)

我怎么能避免这个?

提前致谢

delphi variables mdi scoping

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

功能流程:为什么这个功能返回20

假设我有一个叫做的函数l:

l <- function(x) x + 1
Run Code Online (Sandbox Code Playgroud)

然后定义另一个函数,m但在其中m,重新定义l:

m <- function() {
       l <- function(x) x*2
       l(10)
}
m()
Run Code Online (Sandbox Code Playgroud)

为什么要m回来x*2,而不是x+1

r function scoping

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

在全局环境中存储函数中的变量

几年后回到此帖子,以添加另一个警告:不要这样做

我正在尝试在全局环境中存储来自函数的变量,但是我发现SO post其他SO post都不适合我的解决方案。这是一个极其简化的示例,用于说明我的问题。我不能只使用<<-使成为v全局变量,因为我的实际函数创建了几十个变量。

代码(main_file.R)

source("function_me.R")
#environment(doGlobalThing) <-parent.frame(2) #didnt work
doGlobalThing()
v #cant get to this var from the global environment
Run Code Online (Sandbox Code Playgroud)

代码(function_me.R)

doGlobalThing<-function(){
  #eval(v<-'hi',env=parent.frame(2)) #tried this, didnt work
   v<-'hi'
}
Run Code Online (Sandbox Code Playgroud)

scope r environment-variables scoping

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

C/C++中的静态作用域

在下面的代码中,2打印出来.

int x = 1;
int f(int y)
{
    return x;
}

int main() {
    x = 2;
    printf("%d", f(0));
}
Run Code Online (Sandbox Code Playgroud)

如果我们在C中有静态作用域,它会怎么样?为什么不1打印?

印花 2在这种情况下不是动态范围,是吗?

我认为在静态作用域中它应该使用最近的x到函数定义.

c c++ scoping dynamic-scope

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

如何使用 R &amp; RMySQL 连接到函数外部的数据库,在函数内部断开连接,然后在该函数内部重新连接

我有一个利用连接到 Amazon RDS 的 RMySQL 库的 R 脚本。该脚本最初会在运行该函数之前连接到 RDS。在函数内部,查询RDS上的MySQL,然后执行Sys.sleep命令,持续24小时(86400秒),然后恢复。因为 Amazon 的 RDS wait_timeout 参数设置为 8 小时 (28800),这会导致我的 R 控制台中出现此错误:

Error in .local(conn, statement, ...) :
    could not run statement: MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)

我不能这样做,所以我尝试了以下代码:

duration <- 86400
con <- dbConnect(MySQL(),
       user = passwordFile$user[1],
       password = passwordFile$password[1],
       host = passwordFile$host[1],
       dbname = passwordFile$dbname[1])
query <- function(...) dbGetQuery(con, ...)
testing <- function(){
       test1 <- query("SELECT * FROM a_log")
       print(test1)
       dbDisconnect(con)
       Sys.sleep(duration)
       con <- dbConnect(MySQL(),
              user = passwordFile$user[1],
              password = passwordFile$password[1],
              host …
Run Code Online (Sandbox Code Playgroud)

database-connection r function scoping rmysql

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

Angular / Typescript / Firestore - 如何在 if 语句中返回可观察值

我正在使用 angular 和 firestore。我正在检查 firestore 中我的路线守卫的价值。

我发现在页面刷新时,它返回为未定义。但是,如果我只是硬编码 true 或 false 的返回,它就可以工作。

我的 if 语句中的任何日志总是正确返回,但由于某种原因似乎没有更新我的全局变量。

如果我使用我的网站导航返回根目录并浏览我的网站,它可以正常工作。但是,当我刷新页面时,它返回为未定义。

这可能是一个范围界定问题吗?

路线守卫

import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, RouterStateSnapshot, CanActivate, Router } from '@angular/router';
import { AuthService } from './auth.service';

import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Subscription } from 'rxjs/Subscription';


//testing
import { Observable } from 'rxjs/Observable';
import { AngularFireAuth } from 'angularfire2/auth';

@Injectable()
export class CheckBillingService implements CanActivate {
    private _subscription: Subscription;
    private userBillingDocRef: AngularFirestoreDocument<any>;
    userBilling: Observable<any>; …
Run Code Online (Sandbox Code Playgroud)

javascript scoping typescript angular google-cloud-firestore

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

java中的动态范围变量?(每个方法执行一个变量)

我想知道在java中是否可以声明一个变量本地的变量来执行该方法.

例如,如果我正在做一些递归的东西,我想保持特定于该方法的一个特定执行的各种计数器.

我不知道那个正确的英语表达......

java recursion scoping

0
推荐指数
2
解决办法
897
查看次数

通过C#中的属性公开对象

我想编写一个静态实用程序类,它只有一组属性,向用户公开功能

例如我可以打电话:

Utils.String.GetHexString("Hello World");
Run Code Online (Sandbox Code Playgroud)

要么

Utils.Stream.CopyBytes(instream, outstream);
Run Code Online (Sandbox Code Playgroud)

我可以把它比作最接近的是System.Text.Encoding,其中有UTF8,ASCII等属性,所以你可以这样调用:

Encoding.UTF8.GetBytes("Hello World");
Run Code Online (Sandbox Code Playgroud)

要么

Encoding.ASCII.GetBytes("Hello World");
Run Code Online (Sandbox Code Playgroud)

问题是在Encoding中,这会调用用户公开可用的等效对象(UTF8Encoder,ASCIIEncoder).我想要的是仅通过Utils公开对象,而不会看到与属性相关的对象,例如

我可以打电话:

Utils.Stream.CopyStream(instream, outstream);
Run Code Online (Sandbox Code Playgroud)

但我不能打电话:

StreamUtils.CopyStream(instr, outstr) //This class is only accessible via the Utils class!
Run Code Online (Sandbox Code Playgroud)

这是可能的,如果是这样的话,这样做是好还是坏?

.net c# utilities properties scoping

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

ES6/Node中的词法范围

我试图理解ES6词法范围(使用节点运行时).考虑以下:

'use strict';
let x = 10;
function f() {
   console.log(x);
   console.log(y); // This should crash
}

let y = 5;
f();
Run Code Online (Sandbox Code Playgroud)

从O'Reilly的书"学习Javascript"中解释:

词法作用域意味着您定义函数的范围内的任何变量(与您调用它时相反)都在函数的范围内.

但是,当我运行此程序(通过节点)时,它输出:10 5

是不是调用console.log(y)打破了这里的词法范围规则?如果没有,为什么不呢?

编辑:为了将来参考,似乎教科书的作者(Learning Javascript 3rd Edition O'Reilly)最近在"已确认的勘误表"中将此示例列为错误.在http://www.oreilly.com/catalog/errata.csp?isbn=0636920035534

javascript scoping lexical node.js ecmascript-6

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