小编Mr_*_*s_D的帖子

ORACLE:一次更新多个列

我试图使用相同的更新语句更新两列可以这样做吗?

IF V_COUNT = 9 THEN
        UPDATE INVOICE
        SET INV_DISCOUNT = DISC3 * INV_SUBTOTAL
                , INV_TOTAL = INV_SUBTOTAL - INV_DISCOUNT       
        WHERE INV_ID = I_INV_ID;
        DBMS_OUTPUT.PUT_LINE ('YOU QUALIFY FOR A DISCOUNT OF 30%');
Run Code Online (Sandbox Code Playgroud)

问题是INV_TOTAL没有更新,只有inv_discount

DISC3 = 0.3 IE 30%的折扣,所以sub_total将乘以0.3,这是INV_discount的值

INV_TOTAL = sub_total - 折扣

    INV_ID|INV_DATETIME                  |INV_SUBTOTAL|INV_DISCOUNT|  INV_TOTAL
----------|------------------------------|------------|------------|-----------
       100|14-NOV-12 09.40.06.918000     |        $.00|        $.00|       $.00
       101|18-MAR-12 10.03.00.000000     |        $.00|        $.00|       $.00
       102|18-MAR-12 10.15.00.000000     |        $.00|        $.00|       $.00
       103|18-MAR-12 10.55.00.000000     |      $80.00|       $8.00|     $72.00
       104|18-MAR-12 10.38.00.000000     |        $.00|        $.00|       $.00 …
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

git filter-branch - 放弃对一系列提交中的一组文件的更改

假设我有一个分支dev,我想放弃在分支提交范围内对一组文件所做的所有更改,dev因为它偏离了master.如果此范围内的提交仅触及我喜欢的那些文件,则会将其修剪掉.我得到的最接近的是:

git checkout dev
git filter-branch --force --tree-filter 'git checkout master -- \
a/b/c.png \
...
' --prune-empty -- master-dev-older-ancestor..HEAD
Run Code Online (Sandbox Code Playgroud)

但这有这些缺点

  1. 如果该文件已在master中删除,它将失败,error: pathspec 'a/b/c.png' did not match any file(s) known to git.我可能会决定git checkout master-dev-older-ancestor但是,
  2. 这个文件可能不存在于master-dev-older-ancestor中,并且从master返回到dev以后的某个位置
  3. 毕竟我可能想要放弃一些在master中无处可见的文件的更改

从根本的一点是,我不想让Git签文件的特定版本-我想告诉git的过滤所有提交的范围 master-dev-older-ancestor..HEAD有在所有更改任意文件集(目前在主任何地方或没有)丢弃.

那我怎么告诉git?

git git-filter-branch

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

list[str] 是可迭代的吗?

Python 3.10 不这么认为:

Python 3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:38:29) [Clang 13.0.1 ] \
    on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from typing import Iterable
>>> isinstance(list[str], Iterable)
False
>>> list(list[str])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'types.GenericAlias' object is not iterable
Run Code Online (Sandbox Code Playgroud)

Python 3.11 认为它是:

Python 3.11.0 | packaged by conda-forge | (main, Jan 15 2023, 05:44:48) [Clang 14.0.6 ] \
    on darwin
Type …
Run Code Online (Sandbox Code Playgroud)

python python-internals python-typing

8
推荐指数
2
解决办法
993
查看次数

如何使用git管理多个相似但不同的项目?

我基于类似的代码库有多个不同的闭源项目,每一天我都需要将更改和修复从一个复制到另一个并返回.

由于我的一些项目分散太多而无法使用git子模块,而在其他项目中,我不希望我的客户弄乱子模块,因此我现在可以查看我在其他项目上的工作git patch,git apply这是一项繁琐的工作.

我将考虑切换到我的机器上的本地存储库之间,git pull然后git push使用git cherry-pickgit merge获取所需的更改,但是如果有更好的方法吗?

git multiple-repositories

7
推荐指数
2
解决办法
1268
查看次数

Android registerOnSharedPreferenceChangeListener()会导致自定义视图崩溃

每当我尝试添加此行时,它都会崩溃我的应用.我不把它放在正确的位置吗?

    preferences.registerOnSharedPreferenceChangeListener(myActivity.this);
Run Code Online (Sandbox Code Playgroud)

这是我的课

class Simulation extends View {

    // I declare my program variables here
    public Simulation(Context context) {
        super(context);
        // get the preferences
        SharedPreferences preferences = PreferenceManager
                .getDefaultSharedPreferences(context);
        preferences
                .registerOnSharedPreferenceChangeListener(myActivity.this);
        String storedPreference = preferences.getString("nPref", "0");
    }

    public void onSharedPreferenceChanged(
            SharedPreferences sharedPreferences, String key) {
        Log.i(TAG, "preferences changed!");
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

crash android android-custom-view android-preferences sharedpreferences

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

Intent Filter for android.intent.action.CALL

我有一个看起来像这样的intent过滤器:

<activity
    android:name="com.test.Call"
    android:label="@string/makeCall" >
    <intent-filter>
        <action android:name="android.intent.action.CALL" />
        <category android:name="android.intent.category.DEFAULT" />
        <action android:name="android.intent.action.CALL_PRIVILEGED" />
        <data android:scheme="tel" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

这很好用,当你尝试拨打电话时,我的文字显示为其中一个选项.我想要做的是处理被呼叫的号码并询问用户一些问题,然后继续通话.我通过在执行任何处理之后运行以下代码来执行此操作:

Uri phoneCall = Uri.parse("tel:"  + numToCall);
Intent caller = new Intent(Intent.ACTION_DIAL, phoneCall);
startActivity(caller);
Run Code Online (Sandbox Code Playgroud)

问题是,它从头开始显示相同的选项(本机调用者和我的意图过滤器).这不是我想要的,我想绕过我的意图过滤器并直接转到本机调用者.有没有办法做到这一点?如何强制意图直接转到本地调用者?我正在考虑将其移动到广播接收器,但宁愿走这条路.

谢谢

android

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

一旦活动结束,就会调用onStartCommand服务

当我点击播放按钮播放歌曲并将歌曲mp3与它捆绑在一起并在onStartCommand中接收时,我开始服务.问题是当我启动服务的活动结束时,我的服务再次调用onStartCommand.当它接收该捆绑时它不存在,因为这次活动没有启动它.因此,我在准备媒体播放器时遇到了非法的例外情况.我没有约束我的服务.

为什么在我的活动结束时会调用onStartCommand?

启动服务:

Intent i = new Intent(SongList.this,MyService.class);
i.putExtra("songURL", user.songurlz);
i.putExtra("songNAME", songplay_name);
startService(i);
Run Code Online (Sandbox Code Playgroud)

服务类:

public class MyService extends Service {

    static MediaPlayer mediaPlayer;
    static int pauseplay;
    static NotificationManager notificationManagerPlay;
    static CharSequence tickerText;
    static Notification notification4;//Notification variable(for song playing)
    TelephonyManager telephonyManager;
    PhoneStateListener listener;
    static Notification notification;
    static NotificationManager mNotificationManager;
    String songurl;
    String songname;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mediaPlayer = new MediaPlayer();
        pauseplay = 1;
        MainMenu.serviceRunning …
Run Code Online (Sandbox Code Playgroud)

android

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

在庞大的项目环境中使用Web片段(Servlet API 3.0)

我们最近迁移到Servlet API 3.0.由于我们正在开发一个有时需要进行一些更改web.xml的框架,因此基于我们框架的项目需要web.xml在框架发生变化时更新它们.

Servlet API 3.0引入了新的Web碎片,使这种行为更加松散耦合和动态.我创建了一个web-fragment.xml并从那里的web.xml中移动所有东西.因此,项目现在只需要定义以下内容web.xml和它们自己的附加声明.

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
   version="3.0"
   metadata-complete="false"
   xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>
Run Code Online (Sandbox Code Playgroud)

我们必须使用metadata-complete="false"在JAR中启用Fragment搜索(我们的框架具有web-fragment.xmlin META-INF/.

由于我们对其他框架和库(大约80-90)有许多依赖关系,并且metadata-complete="false"还触发搜索注释,因此搜索所有库需要12秒才能达到不可接受的时间.

这个机制很有效,我喜欢这样一个事实,即我们与框架的联系更加紧密,但启动时间是致命的!此外,我们必须增加Tomcat的可用内存,-Xms256m -Xmx512m以便-Xms512m -Xmx1024m在没有得到它的情况下启动它java.lang.OutOfMemoryError: Java heap space(由Tomcat的低效实现的注释处理器引起(大约有50.000个类被缓存)).


我知道我们可以禁用库中的注释搜索,但由于我们主要使用没有metadata-complete="true"标志的第三方,因此这也不是一个选项.

我们可以做任何事情来禁用搜索注释吗?或者我们可以强制Servlet容器只搜索声明的库中的web-fragment.xml

我真的想使用新的网络片段功能,但随着启动时间和内存的增加,这是不可能的.

java tomcat servlet-3.0

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

JPA - 插入连接表的正确方法(带有额外的列)

我设法为我的电影插入工作人员 - 现在我想以正确的方式做到这一点.实体(缩写):

@Entity
@Table(name = "movies")
public class Movie implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idmovie;
    // bi-directional many-to-one association to MoviesHasCrew
    @OneToMany(mappedBy = "movy", cascade = CascadeType.PERSIST)
    private List<MoviesHasCrew> moviesHasCrews;
}

@Entity
@Table(name = "movies_has_crew")
public class MoviesHasCrew implements Serializable {
    @EmbeddedId
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private MoviesHasCrewPK id;
    // bi-directional many-to-one association to Crew
    @ManyToOne
    @JoinColumn(name = "crew_idcrew", columnDefinition = "idcrew")
    @MapsId("crewIdcrew")
    private Crew crew;
    // bi-directional many-to-one association to Movy
    @ManyToOne
    @JoinColumn(name = "movies_idmovie") …
Run Code Online (Sandbox Code Playgroud)

jpa entitymanager eclipselink jpa-2.0

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

撤消"git filter-branch ... - --all"?在一个命令?

我开始乱搞git filter-branch.--all选项重写所有分支和标记.凉. git filter-branch创建它覆盖refs/original的所有引用的备份.很酷.现在我想把我所有的实验都filter-branch吹走.

有没有一种简单的方法来完全撤消效果git filter-branch <whatever filter> -- --all?即将所有重写的分支一次性恢复到原始状态?

如果没有预先存在的方式,应该有.如果没有预先存在的方式,是否有人会有一个简短的脚本来执行此操作?

显然有一些解决方法.我可以手动恢复它,一次一个分支,就像在这个问题中一样.或者我可以直接核对并重新克隆.要么在一个包含许多分支/标签的回购中快速繁琐,要么(比如说)被分成更小的回购.

git git-filter-branch

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