我正在尝试从 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”
作为我当前应用程序的补充,我需要创建一个单独的线程,它将定期进行一些处理
我创建了一个新类来完成所有这些,这个类将在我的应用程序启动时加载.
这是我到目前为止:
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)
我想使构造函数私有,以防止其他人试图意外地实例化这个类.我怎样才能做到这一点?
另外,我对这些要求的实施有什么不好吗?我只创建一个会运行然后睡觉的线程,我是否错过了任何明显的错误?我之前没有使用过线程
如果我对同步块中的列表执行某些操作,是否会阻止其他线程在其他位置访问该列表?
List<String> myList = new ArrayList<String>();
synchronized {
mylist.add("Hello");
}
Run Code Online (Sandbox Code Playgroud)
这是否会阻止其他线程迭代myList
并删除/添加值?
我正在寻找从列表中添加/删除值,但同时保护它免受其他线程/方法的迭代(因为列表中的值可能无效)
我的代码在以下行中引发了上述异常(第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 …
当在活动之间转换时,例如呼叫startActivity();
或使用back
按钮时,屏幕从侧面滑入.
有没有办法改变这个?我有一个类似闪存卡的应用程序,所以当我从活动A转移到活动时,BI希望屏幕翻转就像转动真正的闪存卡一样.
开箱即用有没有办法做到这一点?或者这需要一些自定义动画?
我有以下构建环境:
我可以从命令行(在 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
为了准备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) 我最近从Eclipse迁移到Android Studio.我找不到"文件>另存为"选项.这有什么替代方案吗?
(有时,我通过从已存在的内容创建新的类或XML来创建新的类或XML,而不是更改.在Eclipise中,我通过使用"文件"菜单中的"另存为"选项来执行此操作)
我有一个字符串,我将其传递给log4j以将其记录到文件中,该字符串的内容是XML,并且它被格式化为具有缩进的多行等等,以使其易于阅读.
但是,我希望XML能够在一条线上,我该怎么做呢?我看过StringUtils,我想我可以去掉标签和回车,但是必须有一个更干净的方式?
谢谢
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)
(并且对于记录,是的我知道捕获普通的异常是坏的,只是在这个例子中使用它;))