小编Jim*_*mmy的帖子

从 SQL Server 导出表以导入到 Oracle 10g

我正在尝试从 SQL Server 2005 导出一些表,然后创建这些表并将其填充到 Oracle 中。

我有大约 10 个表,从 4 列到 25 列不等。我没有使用任何约束/键,所以这应该是相当简单的。

首先我生成脚本来获取表结构,然后修改它们以符合Oracle语法标准(即将nvarchar更改为varchar2)

接下来,我使用 SQL Server 导出向导导出数据,该向导创建了一个 csv 平面文件。然而我的主要问题是我找不到强制 SQL Server 双引号列名的方法。我的其中一列包含逗号,因此除非我能找到一种让 SQL Server 引用列名称的方法,否则在导入它时我会遇到麻烦。

另外,我是走困难的路线,还是有更简单的方法来做到这一点?

谢谢

编辑:通过引用,我指的是引用 csv 中的列值。例如,我有一列包含类似地址

101 High Street, Sometown, 某些县, PO5TC053

如果不将其更改为以下内容,加载 CSV 时会导致问题

“101 High Street,Sometown,Some县,PO5TC053”

sql-server oracle migrate

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

主题; 创建一个单独的线程来定期执行某些操作

作为我当前应用程序的补充,我需要创建一个单独的线程,它将定期进行一些处理

我创建了一个新类来完成所有这些,这个类将在我的应用程序启动时加载.

这是我到目前为止:

public class PeriodicChecker extends Thread
{
    static
    {
        Thread t = new Thread(new PeriodicChecker());
        while(true)
        {
            t.run();
            try
            {
                Thread.sleep(5000l);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }

    /**
     * Private constructor to prevent instantiation
     */
    private PeriodicChecker()
    {

    }

    @Override
    public void run()
    {
        System.out.println("Thread is doing something");
        // Actual business logic here, that is repeated
    }

}
Run Code Online (Sandbox Code Playgroud)

我想使构造函数私有,以防止其他人试图意外地实例化这个类.我怎样才能做到这一点?

另外,我对这些要求的实施有什么不好吗?我只创建一个会运行然后睡觉的线程,我是否错过了任何明显的错误?我之前没有使用过线程

java multithreading thread-safety

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

同步块是否阻止其他线程访问对象?

如果我对同步块中的列表执行某些操作,是否会阻止其他线程在其他位置访问该列表?

List<String> myList = new ArrayList<String>();

synchronized {
  mylist.add("Hello");
}
Run Code Online (Sandbox Code Playgroud)

这是否会阻止其他线程迭代myList并删除/添加值?

我正在寻找从列表中添加/删除值,但同时保护它免受其他线程/方法的迭代(因为列表中的值可能无效)

java multithreading synchronization

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

如何防止此异常?java.sql.SQLException:无法转换为内部表示:

我的代码在以下行中引发了上述异常(第2行):

final ArrayDescriptor tParamArrayDescriptor = ArrayDescriptor.createDescriptor("MY_SYSTEM.T_PARAM_ARRAY", databaseHandler.getConnection());
final ARRAY oracleArray = new ARRAY(tParamArrayDescriptor, databaseHandler.getConnection(), myObjects.toArray());
Run Code Online (Sandbox Code Playgroud)

它给了我以下例外:

java.sql.SQLException: Fail to convert to internal representation: 
Run Code Online (Sandbox Code Playgroud)

myObjects是以下POJO的ArrayList:

public class MyObject
{
    private String name;
    private String surname;

    private int age;

    ...

    // Accessors etc..

}
Run Code Online (Sandbox Code Playgroud)

T_PARAM_ARRAY数据库上看起来如下:

create or replace
TYPE               T_PARAM_ARRAY AS OBJECT (NAME VARCHAR2(50), SURNAME VARCHAR2(50), AGE NUMBER(1));
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我认为我的POJO和数据库类型之间的数据类型映射不能正确匹配.我有理由相信String匹配到VARCHAR2确定,但我认为转换int为a时存在问题NUMBER.

我尝试过使用BigDecimal,但这并没有改善这种情况.

有什么建议?

编辑:根据Oracle文档:Where intArray is an oracle.sql.ARRAY, corresponding to a VARRAY of …

java oracle sqlexception

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

在活动之间转换时是否可以使用翻转动画?

当在活动之间转换时,例如呼叫startActivity();或使用back按钮时,屏幕从侧面滑入.

有没有办法改变这个?我有一个类似闪存卡的应用程序,所以当我从活动A转移到活动时,BI希望屏幕翻转就像转动真正的闪存卡一样.

开箱即用有没有办法做到这一点?或者这需要一些自定义动画?

animation android android-2.1-eclair

5
推荐指数
2
解决办法
1055
查看次数

无法从 Jenkins 签署 Android APK,但可以从命令行运行

我有以下构建环境:

  • 乌班图
  • Java 1.6.0_24
  • 阿帕奇蚂蚁1.8.2
  • 詹金斯 1.427
  • 码头 6.1.26

我可以从命令行(在 jenkins 工作区区域)创建一个发布 APK(经过压缩对齐和签名),方法是运行ant release并在提示时输入密钥库通行证。

但是,使用 Jenkins 作业中的相同构建命令会失败,并显示以下内容:

release:
     [echo] Signing final apk...
  [signjar] Signing JAR: /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unsigned.apk to /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unaligned.apk as mykeystore 
  [signjar] jarsigner: Certificate chain not found for: mykeystore .  mykeystore  must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

BUILD FAILED
/home/james/tools/android-sdk-linux_x86/tools/ant/main_rules.xml:641: jarsigner returned: 1
Run Code Online (Sandbox Code Playgroud)

在 jenkins ant 目标步骤中,我设置了以下属性:

key.store=my-release-key.keystore
key.alias=mykeystore 
key.store.password=<mypass>
key.alias.password=<mypass>
sdk.dir=/home/james/tools/android-sdk-linux_x86
Run Code Online (Sandbox Code Playgroud)

什么会导致詹金斯无法签名,从而从命令行执行相同的目标工作正常?

我用谷歌搜索了这个,发现有些人正在编写自己的 bash 脚本来签署他们的 APK,然后将它们作为 shell …

ubuntu continuous-integration android android-2.1-eclair jenkins

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

对Java的传值和不变性的困惑

为了准备SCJP(或现在已知的OCPJP)考试,我被一些关于传递(参考)价值和不变性的模拟问题所困扰.

我的理解是,当您将变量传递给方法时,您传递的是表示如何获取该变量的位的副本,而不是实际的对象本身.

您发送的副本指向同一个对象,因此您可以修改该对象(如果它是可变的),例如附加到StringBuilder.但是,如果对不可变对象执行某些操作(例如递增整数),则本地引用变量现在指向新对象,并且原始引用变量仍然无视此对象.

考虑我的例子:

public class PassByValueExperiment
{

    public static void main(String[] args)
    {
        StringBuilder sb = new StringBuilder();
        sb.append("hello");
        doSomething(sb);
        System.out.println(sb);


        Integer i = 0;
        System.out.println("i before method call : " + i);
        doSomethingAgain(i);
        System.out.println("i after method call: " + i);
    }

    private static void doSomethingAgain(Integer localI)
    {
        // Integer is immutable, so by incrementing it, localI refers to newly created object, not the existing one
        localI++;
    }

    private static void doSomething(StringBuilder localSb)
    {
        // localSb is a different …
Run Code Online (Sandbox Code Playgroud)

java scjp immutability pass-by-value ocpjp

5
推荐指数
2
解决办法
1702
查看次数

Android Studio文件菜单中是否有"另存为"选项?

我最近从Eclipse迁移到Android Studio.我找不到"文件>另存为"选项.这有什么替代方案吗?

(有时,我通过从已存在的内容创建新的类或XML来创建新的类或XML,而不是更改.在Eclipise中,我通过使用"文件"菜单中的"另存为"选项来执行此操作)

android save-as android-studio

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

如何将String格式化为一行,StringUtils?

我有一个字符串,我将其传递给log4j以将其记录到文件中,该字符串的内容是XML,并且它被格式化为具有缩进的多行等等,以使其易于阅读.

但是,我希望XML能够在一条线上,我该怎么做呢?我看过StringUtils,我想我可以去掉标签和回车,但是必须有一个更干净的方式?

谢谢

java xml string log4j

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

instanceof是否为子类异常工作?

java.net.ConnectException 扩展 java.net.SocketException

如果我执行以下操作,它是否会满足这两个例外情况?即如果我使用"父"异常instanceof,是否包含任何子类异常?

catch (Exception e)
{
   if (e instanceof java.net.SocketException)
   {
      System.out.println("You've caught a SocketException, OR a ConnectException");
   }
}
Run Code Online (Sandbox Code Playgroud)

(并且对于记录,是的我知道捕获普通的异常是坏的,只是在这个例子中使用它;))

java exception-handling

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