我正在尝试使用以下Fastload API
连接等等是完美的.
我确切地知道它失败了
...........
System.out.println(" Streaming " + dataFile);
pstmtFld.setAsciiStream(1, dataStream, -1); // This line fails
System.out.println("check the above line"); // This does not go to console
...........
Run Code Online (Sandbox Code Playgroud)
例外是
Exception in thread "main" java.lang.IllegalStateException: Sample failed.
[ODBC Teradata Driver] Invalid precision: cbColDef value out of range
这是我要上传的表格.这是一种.csv格式,当我通过记事本打开它时,它看起来像这样
1,9,Win
2,9,Winc
3,9,Wi
Run Code Online (Sandbox Code Playgroud)
为什么我会得到这个例外?我怎样才能改进它?据我所知,问题是pstmtFld.setAsciiStream(1, dataStream, -1);不能以某种方式接受数据集并抛出异常
我需要从一个数据库中取一个表并将其上传到另一个数据库.所以,我创建了两个单独的连接.这是我的代码
Connection connection1 = // set up connection to dbms1
Statement statement = connection1.createStatement();
ResultSet result = statement.executeQuery("select * from ............. ");
Connection connection2 = // set up connection to dbms2
// Now I want to upload the ResultSet result into the second database
Statement statement2 = connection2.createStatement("insert into table2 " + result);
statement2.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
以上最后一行不起作用我该怎么做?底线是如何重用ready结果集
ResultSet是一个现成的java对象.我希望有一种方法将它添加到批次或这样的事情和executeUpdate,但不写结果集到一些临时空间(List,csv等等),并插入
我想设置一个固定大小的JtextArea内JOptionPane
public static void main(String[] args) {
JTextArea headersTxt = new JTextArea();
for (int i = 0 ; i < 50 ; i ++ ) {
headersTxt.append("test \n") ;
}
JScrollPane scroll = new JScrollPane(headersTxt);
scroll.setSize (300,600) ; // this line silently ignored
int test = JOptionPane.showConfirmDialog(null, scroll,"test", JOptionPane.OK_CANCEL_OPTION) ;
}
Run Code Online (Sandbox Code Playgroud)
但是,上面的代码忽略了 scroll.setSize (300,600) ;
它工作正常,但大小不固定.有什么问题scroll.setSize (300,600) ;?
我一直试图连接到Teradata
Class.forName("com.teradata.jdbc.TeraDriver");
String connectionString = "jdbc:teradata://xxx.xxxxxx.com/database=xxxxxx, tmode=ANSI, charset=UTF8";
String user = "Rocket512";
String password = "aui8mn5";
Connection conn = DriverManager.getConnection(connectionString, user, password);
Run Code Online (Sandbox Code Playgroud)
得到以下
Exception in thread "main" com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database]
[TeraJDBC 14.10.00.17] [Error 8017] [SQLState 28000] The UserId, Password or Account is invalid.
at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException(ErrorFactory.java:300)
at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:666)
at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:216)
Run Code Online (Sandbox Code Playgroud)
我知道主机是正确指定的,因为我没有得到UnknownHost Exception.
另外我已经仔细检查了我的用户名和密码是否正确.
我运行@ beni23建议的查询(谢谢)
select *
from dbc.logonoff
where logdate >= date '2013-10-31'
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果

什么是Bad Password?我使用SQL Assistant使用这个密码,效果很好.为什么我不能用Java连接?
这个问题在SAS论坛上进行了讨论,与会者最终同意不同意.
问题很简单:SAS missing value在编译时为所有变量分配一个UNLESS 变量显示在a中sum statement(在这种情况下,SAS 0在编译时指定一个值).这是我的简单证明
data test;
put _all_;
var1+1;
var2=5;
put _all_;
run;
Run Code Online (Sandbox Code Playgroud)
记录屏幕
var1=0 var2=. _ERROR_=0 _N_=1
var1=1 var2=5 _ERROR_=0 _N_=1
NOTE: The data set WORK.TEST has 1 observations and 2 variables.
Run Code Online (Sandbox Code Playgroud)
var2分配了一个missing valueBUT var1被分配,0因为它是一部分sum statement(我相信如此)
我的问题是为什么?我很确定SAS missing values在编译时会为所有变量分配.为什么它会在一个变量中出现异常sum statement?还有其他例外吗?
例如查询: create table ; select xxx ; delete ;
如何在一个会话中执行它?
我看到了一个关于 mysql的类似问题的答案。诀窍是开启allow multiple queries
String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)
特别是对于teradata,解决方案是什么?
我试过
String dbUrl = "jdbc:odbc:dsn?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)
它工作不正常?
我正在使用teradata来吸引一些员工
select eventid, personid
.........
.......
我需要select仅基于eventid参数来区分值,所以我想应用于distincteventid,并让personid成为任何类型的第一个值
我怎样才能做到这一点?
如果我做
select distinct eventid, personid
............
.........
这将根据两个参数进行区分
表是
id col1 col2
1 former good
2 future fair
3 now bad
4 former good
.............
Run Code Online (Sandbox Code Playgroud)
目标:我只需要选择那些累积分数高于0.8的行
1)如果col1 ='前'那么该行获得0.2分,如果'现在'那么'0.7',如果'未来'那么0.3
2)如果col2 ='good'那么该行得到0.8分,如果'坏'那么'0.1',如果'公平'则为0.5
因此,我需要在WHERE子句中分配数值.我想避免在SELECT中更改值,因为我需要用户能够看到标签('good','now'等)而不是数字.
我怎样才能做到这一点?
SELECT *
FROM mytable
WHERE ?
Run Code Online (Sandbox Code Playgroud) 密码是mySQL数据库应该以散列形式保存
echo password_hash('test', PASSWORD_BCRYPT);
Run Code Online (Sandbox Code Playgroud)
给我们
$2y$10$8PxsFGPbGtgYb44GRPL84ev2T0xR0LXMSSKm7cuSBUbAU114mosFG
Run Code Online (Sandbox Code Playgroud)
要么
$2y$10$E.q3bVE9EE2ce2VaKPJgtuwEMRZxpTYiQR6Mw2dmLGqeKx/PsQY42
Run Code Online (Sandbox Code Playgroud)
要么 ...
但是所有这些$2y$10. . .字符串都很容易被解密回test使用password_verify.
假设某人可以访问哈希密码,那么她将能够使用password_verify ?解密它们?一旦有人拥有字符串,$2y$10$E.q3bVE9EE2ce2VaKPJgtuwEMRZxpTYiQR6Mw2dmLGqeKx/PsQY42他或她就可以轻松地将其转换回纯文本,对吧?那么为什么要使用密码呢?